STM32CubeMX编辑规范
前言
采用STM32CubeMX的编辑规范可以更好的在不同的芯片上移植,修改外设可以没有影响一、代码编写范围
所有需要写的代码都需要写在注释的BGEGIN和END之间,这样更换外设修改或者移植的时候不会覆盖自己写的代码
二、项目结构
一般外设的驱动函数都在Drivers/STM32F1xx_HAL_Driver
中打开相应的.h文件中可以查看可以调用的函数和宏定义。
要写自己的C语言文件添加在Application/User/Core
三、单独外设配置
初始化代码生成在对应的外设文件。 如GPIO初始化代码生成在gpio.c中。否则所有外设都将在main.c
勾选 Generate peripheral initialization as a pair of’.c/.h’ files per peripheral
为每个外设生成独立的’.c/.h’文件
四、代码生成设置
固件包选择
Copy all used libraries into the project folder
将所有使用过的库复制到项目文件夹中。
Copy only the necessary library files
只复制必要的库文件。这个相比上一个减少了很多文件。比如你没有使用CAN、SPI…等外设,就不会拷贝相关库文件到你工程下。
Add necessary library files as reference in the toolchain project configuration file
在工具链项目配置文件中添加必要的库文件作为参考
生成文件:
Generate peripheral initialization as a pair of'.c/.h' files per peripheral
每个外设生成独立的’.c/.h’文件
Backup previously generated files when re-generating
在重新生成时备份以前生成的文件
重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。
Keep User Code when re-generating
在重新生成时保留用户代码比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。
注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。
Delete previously generated files when not re-generated
删除以前生成,但现在没有生成的文件
比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件。
HAL设置
Set all free pins as analog (to optimize the power consumption)
将所有空闲引脚设置为模拟(以优化功耗)
这个做低功耗产品时这个选项有必要勾选。
Enable Full Assert
使能所有断言
模板设置
Select a template to generate customized code
选择一个模板来生成自定义代码 (还没用过这功能)
五、高级设置
HAL库类似标准库,LL库更接近寄存器操作。有部分芯片没有LL库。
Not Generate Function Call
不生成函数调用也就是你代码不调用对应初始化函数。
比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。
Viility (Static)可见性(静态)这个就是初始化代码声明为static。
提示:
A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.
B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。
外设回调起用设置开启在
Register CallBack
小记: