微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 01-工具文档篇

01-工具文档篇

时间:10-02 整理:3721RD 点击:

    工欲善其事,必先利其器。准备蹂躏NUCLEO-F412ZG板子之前,先下载芯片和开发板的手册文档以及开发工具。
1. 文档
    先来到NUCLEO-F412ZG开发板的官网,下载了原理图,开发工具入门等文档。瞅了瞅开发板上芯片型号STM32F412ZGT6U,还好它没跟我说“你瞅啥”。再去官网搜索,STM32F412ZG页面上很多文档,主要分产品规格说明书、应用笔记、技术文章、参考手册、编程手册等。最重要就是RM0402,也就是我们这块白富美开发板核心芯片的参考手册,暂时下载这一篇就行,百度一下还有中文版本。至于其他应用笔记,等需要的时候再来下载。



2. 开发工具
2.1 STM32CubeMX
    先跟着百度先粗略的了解了一下stm32芯片的开发知识。得知官方推出的STM32CubeMX是一款图形化配置工具,支持stm32的f0,f1,f2,f3,f4,f7,l0,l1,l4系列,根据图形化向导非常轻松地就可以一步步完成外设、引脚、时钟等初始化配置并生成C代码。同样官网搜索STM32CubeMX,下载并安装(下载页面)。运行起来的界面如下图,安装过eclipse的童鞋们都很熟悉。


    安装好了并不是马上就能用了,我们还需要安装针对STM32F4系列的库文件。点击菜单栏Help-》Install New Libraries,弹出对话框,选中STM32F4Cube最上面一条就可以了,也不知道为什么st要把旧版本也列在上面,然后Install Now。我们的配置工具就可以正式使用了。




2.2 Keil / IAR for ARM
    接下来就是开发工具,根据自己喜好安装。貌似用的最多的应该是Keil MDK5了,反正IAR我用起来总有点那么别扭。怎么安装百度上就一大堆文章了,这里就不贴图了。
    同样的Keil也需要安装针对STM32F4的库,但是keil的Pack installer慢的跟蜗牛一样。我们可以去http://www.keil.com/dd2/pack/页面上找到Keil.STM32F4xx_DFP.2.10.0.pack用下载工具下载后手动安装。



3. HAL库

    HAL(Hardware Abstraction Layer)库是由ST官方基于硬件抽象层而设计的软件函数包,由程序、数据结构和宏组成,包括MCU所有外设的性能特征。为开发者访问底层硬件提供了一个中间API,通过HAL库无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设,可以大大减少用户的编程实践,降低开发成本。摘了这么一大段话,大家也知道HAL库到底是什么了,由于之前没有用过STM32,只是几年前用过STM8L,那个时候有官方的标准库,按我理解和现在的HAL库差不多性质。只是HAL库和STM32CubeMX结合起来就威力巨大,STM32CubeMX可以直接生成基于HAL库的工程项目和初始化代码,使开发非常灵活轻便。
3. Demo
    闲话说完,直接上一个点灯例子,运用STM32CubeMX生成项目工程,用keil编译生成hex文件,并下载到开发板上进行演示。
3.1 原理图
    第一步当然是看看原理图了,在我们的芯片左侧靠近缝隙的地方有3颗User Led,再加上板子右下角的蓝色用户按键,这就是板子提供给我们的仅有的外设。查看原理图,PB7->LD2(Blue),PB14->LD3(Red),PC13->B1(User key)





3.2 STM32CubeMX配置项目
    打开STM32CubeMX软件,点击“New Project”。


    弹出对话框,由于我们的NUCLEO-F412ZG是官方开发板,在STM32CubeMX已经定义好了板上的外设,所以单击Board Selector。过滤器Type of Board中选择Nucleo144,就可以在下面的开发板列表中看到NUCLEO-F412ZG,双击确认。(等熟悉STM32CubeMX后,这一步可以直接选择MCU类型,重新定义MCU的各个引脚。)



    确认开发板类型之后,软件界面如下图,调节鼠标滚轮可以放大缩小MCU示意图。可以对照原理图来看各引脚的定义。PC14,PC15接32.768k外部晶振,PC13接蓝色用户按键B1,PB7接蓝色LED LD2,NRST接重启按键B2,另外还有最重要的SWD调试接口,引脚PA14、PA13、NRST、PB3对应SWD接口的TCK、TMS、NRST、SWO。


    对引脚定义没有疑问之后,切换到Clock Configuration,开发板外接32.768kHz晶振,软件已经设置好输入频率且不能改动。我们可以设置箭头所指的HCLK,最大100MHz,这里我没做修改,就还是8MHz。


    切换到Configuration,单击GPIO进行配置。


    弹出Pin Configuration引脚配置对话框,将PB7和PB14的GPIO输出电平设置High,点击OK完成配置。功耗计算等以后经验值涨上来再用。保存当前项目,在项目菜单点击Generate Code生成工程项目,记得选择编译工具Keil5。STM32CubeMX就可以帮我们自动生成并配置Keil工程。


3.3 Keil开发
    打开STM32CubeMX自动生成的Keil工程,左侧STM32F4xx_HAL_Driver目录就是HAL库,Application/User是用户目录,我们主要在这个目录下编写代码。另外的目录则包含启动代码和系统时钟配置文件。由于我们已经设定LD2,LD3初始高电平,也就是点亮LD2和LD3,在这里就暂时不修改代码了。在Option for Target选项配置中,记得勾选生成Hex文件。最后点击Build按钮或者按F7键,Keil编译生成可下载到开发板上的二进制代码。如果Keil已经配置了ST-Link的调试器,我们点击load按钮,编译好的代码就被下载到开发板上了。





3.4 检查开发板
     查看我们的开发板,是不是红灯和蓝灯已经被点亮了?就这么简单,稍稍修改main.c就可以做出流水灯效果。


【参考】
1. http://www.st.com
2. http://www.keil.com

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top