STM32CubeMX代码生成和点亮LED
所需工具STM32CubeMX和Keil5
这篇主讲:图形配置工程和生成代码后规范及其他注意事项;下一篇会深入一点讲HAL库和代码模板等;
1、先打开STM32CubeMX软件,点击New Project新建工程;
2.在搜索框中搜索你的项目芯片;
3、搜索出来有两个不同封装的芯片,写程序没区别,但是这个软件可以生成IO说明文档,可能会导致文档与实际封装差异。选择确定后双击~;
4、创建完工程,简单介绍一下功能;
5、先配置时钟树,我使用的F429最大支持180M时钟,我配置为最大时钟。
6、我的板子LED是接在PA11上的,在搜索栏上搜索PA11,芯片PA11会一闪一闪的。
7、点击PA11引脚,会出现下面画面,我们选择GPIO_Output
8、当PA11选择作为输出时,外设USB功能会无法使用,软件会通过红色的叉号提示引脚冲突;
9.点击Configuration>>GPIO,进行详细的外设配置。
10.详细参数配置,如下图,完成后点击OK.
11.工程设置,填好工程名、工程路径;最重要的是选择编程工具,如果忘了选可以点击project>>settings重新选择。
12.打开工程,根据你在工程设置中选择的编程工具打开。
13.图片第三点是十分重要,很多新手没注意,以为可以在工程里面随便找个空白的地方就可以写自己的代码,当通过STM32CubeMX重新生成代码的时候,就发现自己辛辛苦苦写的代码没有了,找不回来了,一瞬间回到*欲哭无泪(我何尝不是这样过来的,哎...~!)。通过STM32CubeMX生成的模板代码必需按照模板的规范写,打开工程你就看到有很多的地方写着
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
所有的自定义代码一定要放在这中间。避免代码重生成删除,代码添加在BEGIN和END间就好了。
没吃过这种亏的同学可以自己做一下测试,毕竟我说的再多不如自己随便在BEGIN和END外写点代码试试效果。(hahaha...)
14.在main函数的while中添加如下代码:
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); //LED取反
HAL_Delay(1000); //延时1秒
}
/* USER CODE END 3 */
15.请测试,把代码写在BEGIN和END外,如下:
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); //LED取反
HAL_Delay(1000); //延时1秒
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
然后关闭KEIL5;打开STM32CubeMX点击完毕后open project;最后看看while内的代码变化(手动滑稽);
16.赶着下班差点忘了,每次做完一个项目写文档都是一个十分痛苦的过程,可意会不可言传。这个软件可以生成一下我们使用外设的相关信息文档适当减轻我们的压力,嘻嘻...(我也是一个热爱写文档的三好程序员)。
全篇完。