STM32CubeMX生成C代码及时钟树配置(基于stm32f407)

STM32CubeMX初探

前言

近来对于stm32单片机编程中,HAL库逐渐取代标准库成为主流的库。标准库支持的芯片型号有限,而且目前已经停止支持,而HAL库支持所有类型的芯片,可移植性也很高,再加上有神器STM32Cube可以生成工程模板,越来越多的编程开始从使用标准库转到使用HAL库。

点亮第一个LED

l
新建工程后,在此处输入所用到的芯片型号,此处使用的STM32F407IGT6。
选好芯片型号进入到配置界面后,需要依次进行时钟模块配置、时钟系统配置、GPIO引脚配置、Cortex内核配置,才能生成工程源码。

时钟模块配置

在这里插入图片描述
在RCC中选择使用外部晶振作为时钟源,完成对时钟模块的配置。

时钟系统配置

时钟是单片机的脉搏,需要极其重视,在stm32Cube中进行时钟配置实则是针对芯片手册中的时钟数对各个时钟频率、锁相环等进行配置。下面对F4的四个时钟源进行介绍。

时钟源F407频率要求
HSE(高速外部振荡器)4~26MHz
LSE(低速外部振荡器)32.768MHz
HSI(高速内部振荡器)-16MHz–
LSI(低速内部振荡器)32KHZ

附一张在正点原子参考的时钟树高清图和STM32Cube中对于时钟的配置。二者对比参考理解更深刻。
STM32F407时钟树
STM32Cube中对于F407时钟的配置要进行配置首先要理解芯片手册中的时钟树,对于基础的应用来说,只需要理解SYSCLK、AHB、APB1、APB2、RTC时钟的配置即可。
对于芯片手册中的时钟树,可以先看中间对于SYSCLK进行配置的SW,可以看出,SYSCLK的来源有三个,即HSI、HSE以及锁相环的输出,F407主频最高可以达到168Mhz,仅通过HSI或者HSE来作为时钟源很难发挥最大的效能,一般采用锁相环进行倍频来得到高频率的时钟信号作为系统时钟。
在这里插入图片描述
单独看PLL锁相环,输入可以选择HSI和HSE,一般选用HSE。HSE进行M分频后输入到锁相环中,VCO即理解为电压控制震荡,xN即为放大N倍。随后结合cube中的配置进行理解。
上一步中以及完成了对时钟模块的配置,随后在Clock Configuration中结合电路板对外部晶振频率进行配置,同时选择系统时钟使用锁相环输出。
在这里插入图片描述
具体配置如上图,不考虑超频的情况下,可达到F407最大的主频168Mhz。

GPIO引脚配置

完成时钟配置之后,选择LED对应的引脚,此处使用的是PE0。
搜索PE0
选择输出模式。在这里插入图片描述
下一步见图,可以设置IO的输出模式,初始电平,建议为每个IO添加Label方便进行辨识。
在这里插入图片描述
此时对点亮一个LED的GPIO配置结束。

Cortex内核配置

在这里插入图片描述
在SYS中选择debug的方式,使用SWDIO和SWCLK进行程序下载的选择Serial Wire

工程生成

在Project Manager中进行配置,设置工程名和存储路径,画框的部分需要注意。Structure选择Basic即可,下面的IDE要注意版本对应。
在这里插入图片描述
拉到下面,包的版本需要注意,可能默认的版本与安装的版本不同,可以看自动生成的路径下面包的版本是多少再进行设置。
在这里插入图片描述
在Code Generator中也需要修改默认配置。①处默认是勾选了copy all,这会导致将一些没有用到的库文件生成到工程中,导致工程庞大,编译速度慢,按照如下配置可以只使用用到的文件,工程体积更小。
②处需要进行勾选,勾选后会将.c和.h文件分开存放,方便管理。
在这里插入图片描述
配置结束后点击右上方的生成工程可以在指定文件夹下生成配置好的工程文件。
在这里插入图片描述

注意事项

编译器版本

新版本的keil没有版本5的编译器,需要选用版本6。否则会导致编译出错。
在这里插入图片描述

用户代码位置

我们写的代码要放在生成的工程中留出的对应部分,因为下次更新配置重新配置工程时,不在规定位置的代码会被覆盖掉。
在这里插入图片描述

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值