STM32CubeMX快速生成STM32F407ZG芯片寄存器初始化
STM32CubeMX对于一些使用STM32比较多的开发者比较熟悉,但对于刚接触STM32系列单片机的开发者就可能显得陌生一些。STM32CubeMX是一款由ST公司推出的帮助STM32开发者快速搭建STM32工程文件的图形编程软件。
STM32CubeMX的好处在于,开发者不用像以前一样自己编程来对单片机的寄存器进行操作,该过程不仅繁琐并且提高了用户代码的出错性,而使用STM32CubeMX该软件只需在软件里面对直观的芯片图形和配置选项即可完成对工程所用到的定时器,IO口,时钟,中断等配置,开发者只需要在工程中编写自己的功能逻辑代码即可。
值得一提的是,STM32CubeMX是使用HAL库函数来自动生成代码的,而以往我们使用正点原子探索者开发板(STM32F407ZG)它的教程是基于标准库的,大家注意区分这一点,HAL库和标准库的具体区别,博主由于也是刚接触这个概念,所以也不是太清楚,大致是HAL库相比标准库它不再关注于单片机底层寄存器的操作,而关注于单片机具体功能的实现。以往使用标准库函数需要几行代码的问题,可能HAL库只需要一个函数就解决了, HAL库像是单片机具体功能实施的函数库,而标准库更像是单片机寄存器操作的函数库。在这里,我将为大家演示如何创建一个STM32F407ZG芯片GPIO口初始化,并对开放者以前在标准库函数常用到的sys.c,delay.c,usart.c进行一些简单的修改,移植到HAL库函数中,使得其在HAL库函数中也能实现其功能应用。
一.开发准备过程
1.Keil5MDK编程软件(Keil.STM32F4xx_DFP.2.14.0版本固件库,太过古老的固件库可能会显示找不到芯片提示信息)。
2.STM32CubeMX(官 下载:https://www.st.com)
3.JDK8(STM32CubeMX是运行在JAVA环境上的,官 下载:https://www.oracle.com,JDK版本过高过低都不行,推荐JDK8)
二.STM32CubeMX使用参考
在这个例子中我将会将STM32的B0和B1两个IO口通过STM32CubeMX来配置成输出状态。
1.芯片选型
1.对于会没有在STM32CubeMX中安装HAL库的需要在软件中申请下载
2.RCC时钟配置
这里我们需要将HSE(外部高速时钟)设置值为外部晶振输入状态
3.时钟树配置
4.GPIO口配置
目的:将PB0和PB1设置为输出状态。
1.搜索PB0和PB1
输入PB0后会看到对应芯片引脚会进行黑色闪烁
5.生成代码
从上到下依次为:设置项目名称
设置代码存放位置
设置开发平台(使用Keil5,则选择:MDK-ARM,V5版本)
最后点击:Generate Code,生成代码,这样代码就生成完毕。
6.代码查看
1.main函数
二.sys.c,delay.c,usart.c在MX搭建工程中如何使用
本例子中sys.c,delay.c,usart.c函数是使用正点原子STM32F429系列单片机HAL库函数,修改内容非常简单,只需要将原sys.c函数中画框部分代码注释掉即可使用在STM32F407ZG中使用sys.c,delay.c,usart.c函数了
例程:下载
STM32CubeMX:下载
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!