用CubeMX创建Keil工程
后续我们都将会使用CubeMX的框架,使用HAL库进行开发学习~
1. 使用CubeMX
选择MCU型号, 这里选择FryPi炸鸡派STM32开发板所使用的
STM32F411RET6
, 然后点击Start Project
进入工程设置.设置RCC. 这里FryPi炸鸡派开发板的外设是有外部晶振的,所以高速和低速CLK都使用外部晶振作为源.
设置SYS. debug使用SW, 启用后PA13和PA14会亮绿, 然后
timebase
使用Systick
, 但如果使用了RTOS, 这里就建议换成其它的, 这个后续再说。接着我们试下点灯, 使用GPIO, 可以看到LED测试的灯连接在PC13上,所以我们设置GPIO PC13为输出,然后等等测试点灯。
设置
Clock Config
, 可参考下图设置, 由原理图可知, 外部高速晶振接的25MHz,低速为32.768kHz. 按照填好, 然后设置分屏器, 使用PLL锁相环, 设置HCLK和SYSCLK为100MHz, 拉到最大.设置
Project Manager
, 可参考下图设置, 设置好导出路径, 设置好工程使用MDK, 然后点击右上角GNERATE CODE
生成工程即可. 可以设置独立的.c/.h以保证项目的清爽,不会全部放在一起.
2. CubeMX模板工程介绍
2.1. 生成的结构
标准CubeMX生成的文件有下面这些, Core主要为生成的main和gpio设置和中断函数等相关的内容, HAL_Driver为移植过来的HAL库,大家可以拿到工程继续摸索。
2.2. 生成代码的具体内容
打开keil工程,可以发现里面很多注释,USER CODE BEGIN什么的,这个他是为了用于让用户在BEGIN
和END
之间加自己的代码,然后写完代码再次使用CubeMX生成代码,就不会被覆盖,确实注释有点多,而且再次生成代码会有可能让项目混乱。
所以强烈建议,使用CubeMX生成工程和初始化代码,一次性搞定!!!
2.3. 框架中修改代码
照顾到规范,我们在BEGIN
和END
之间,添加上GPIO置1和置0,然后添加上delay函数延时,编译烧录测试,这样就实现了LED灯的翻转了~ 是不是很便捷呢~~
然后具体的代码细节我们在下一个GPIO章节专门来讲,视频中也会再次细讲。