“使用stm32cubeMX 工具进行代码生成,以LED点灯为例”
01STM32CubeMx的使用条件
1.硬件条件:
(1)野火STM32F103开发板-指南者
(2)原理图
原理图可以参考官网,在stm32CubeMx入门教程的使用中会将用到的部分原理图以图片的形式贴出。
2.软件
(1)STM32CubeMX 从STM公司官网下载。
(2) STM32CubeF1 这是F1系列的HAL库,使用cubeMx进行代码初始化配置和代码生成就使用的这个库,可以根据自己的单片机系列选择下载地址。
(3) MDK 这个软件大家可以自己下载,如果使用其他的编译软件CubeMX 也是支持的。
注意: SetupSTM32CubeMX最新的版本是6.1.0,安装可简单,一路next 可以完成,但是这个软件是使用Java开发,需要使用Java的运行环境。安装 jre软件:jre-8u271-windows-x64,我会在百度云提供,大家可以自行下载最新版本。
02STM32CubeMx点亮LED灯
2.1 STM32CubeMx新建项目
菜单 File->New Project
新建项目如出现服务器的软件更新等,选择Cancel。
出现芯片选择界面,根据需求选择,这里选择野火指南者的芯片STM32F103VET6,LQFP100,100引脚的芯片,点击start project。
2.2 初始化代码
(1)根据原理图选择时钟。
在CubeMX中配置选择时钟,外部高速时钟。
(2)时钟配置
点击 Clock Configuration,输入外部8MHz,HCLK 72MHz。
(3)
GPIO 配置,根据LED引脚选择GPIO
以LED-G
绿灯为例,配置LED引脚PB0,低速,输出模式,上下拉,LED 为LED-G。
项目配置
(4)项目配置,如图所示,添加项目名称,可以选择项目生成的位置,工具链选择(这里使用MDK),堆栈设置,HAL库的位置选择。
(5)Code Generator 的设置
(6)代码生成
配置到这儿,cubeMX已经完成了时钟配置,GPIO配置。使用MDK打开项目就可以控制LED了,可以可出cubeMX主要完成代码初始化配置。
03MDK 项目编写应用代码
使用MDK打开工程
对于cubeMX生成的代码可以从图中看出,软件已经帮我们完成了基本的初始化,我们只需要在main.c while(1)主函数中添加我们的应用代码,不像标准库一样手动的添加外设初始化、时钟初始化的配置代码。
现在我们需要操作GPIO来控制LED的灯的亮 or 灭。GPIO的操作函数有很多,在stm32f1xx_hal_gpio.h 中查找。
我们在main.c 的主函数中while(1)循环中加入控制LED灯的代码,如下图所示:
HAL_Delay()是毫秒延迟函数,参数3000是3s。使用HAL_GPIO_WritePin() 写入RESET 和SET 控制写1和写0。
编译程序
编译程序没有出错,配置编译器进行程序下载。下载器的选择配置如下图所示。
04看效果如何
可以看出LED-绿色的灯美三秒闪烁一下。