一、STM32CubeMX
1.简介
STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。
2.详细安装过程
安装STM32CubeMx一共需要三个安装3个板块:
- JRE (Java Runtime Environment) Java运行环境 运行JAVA程序所必须的环境的集合
- STM32CubeMX
- HAL库 STM32 HAL固件库 ST官方推出的另一套库
(1)JRE安装
(2)STM32CubeMX安装
-
进入官网:www.st.com/stm32cubemx -
点击Login,登录账号,没有则需注册 -
选择自己需要的版本下载,我下载的是6.3.0,当前的最新版本 -
下载好后,点击打开安装包 -
进入安装界面,点击Next进入下一步 -
勾选Accept后,点击Next进入下一步 -
勾选第一个信息后,点击Next进入下一步(第二个信息是询问你是否同意公司收集你的信息) -
点击Browse选择目标文件夹后,点击Next进入下一步 -
这是在提示你,安装本软件可能会与文件夹之前文件冲突,导致文件夹之前文件丢失,询问你是否继续,点击Yes即可 -
这一步直接点击Next进入下一步 -
正在安装 -
等待安装,安装好后点击Done退出,完成安装
(3)HAL库安装
- HAL库,有在线安装、离线安装两种方式
- 此处我们只演示在线安装过程
- 打开已经安装好的STM32CubeMX 软件,点上面的Help→Manage embedded software packages
- 选择你需要的HAL的版本和适用的芯片类型,并点击Install Now进行安装
- 正在安装
- 完成安装的情况
二、实例——流水灯
1.利用STM32CubeMX生成工程文件,并生成代码
(1)新建工程
- 打开STM32CubeMX,点击New Project建立新工程
(2)选择MCU
- 硬件我用的是STM32F103C8,所以Part Number中我选择的是STM32F103C8
- 选择好后,点击Start Project来开始工程
(3)配置时钟
- 接着我们来配置时钟,进入RCC 设置,选择 HSE(外部高速时钟) 为 Crystal/Ceramic Resonator(晶振/陶瓷谐振器)
- 点击进入 Clock Configuration 界面,配置系统时钟 SYSCLK 为 72MHz,修改 HCLK 的值为 72 ,回车后,软件会自动修改所有配置(注意圈出来的地方的信息)
(4)配置调试模式
- 点击进入SYS 设置,Debug 处设置为 Serial Wire
(5)配置GPIO
- 点击进入GPIO 设置,在右边图中找到 LED 灯对应的输出引脚,选择 GPIO_Output,这里我选的PA5、PA6、PA7为LED的端口
- 为管脚命名
(6)工程配置以及代码生成
2.代码完善
- 找到刚才生成的main.c函数
- 双击打开main.c文件,发现里面只有初始化,需要我们进一步完善代码
- 自动生成的代码是由HAL库版本的代码,这里调用的函数是其已经编写好的函数,如下:
函数名称 | 函数原型 | 参数说明 |
---|
(HAL_Delay) | void HAL_Delay (__IO uint32_t Delay) | Delay表示所要延时的时间大小,单位是毫秒 | (HAL_GPIO_WritePin) | void HAL_GPIO_WritePin (GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) | GPIOx: 管脚组(x的取值为A~G)GPIO_Pin: 管脚编号(x的取值为0~15)PinState: 管脚的状态(取值为GPIO_BIT_RESET表示0, GPIO_BIT_SET表示1) |
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(100);\\延时
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
HAL_Delay(100);\\延时
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_SET);
HAL_Delay(100);\\延时
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_RESET);
HAL_Delay(100);\\延时
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);
HAL_Delay(100);\\延时
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);
HAL_Delay(100);\\延时
3.生成.hex文件
4.程序烧录及结果
- 打开FlyMcu,找到需要的.hex文件,然后点击烧录
- 烧录结果
三、Keil的软件仿真逻辑分析(波形图)
1.设置环境
- 点击“魔法棒”进入设置界面
- 点击进入Debug界面后,调整3处地方,然后点击OK
2.调试
- 点击“Start/Stop…”进入调试界面
- 点击“Logic Analyzer”进行波形分析
- 点击左上角setup,弹出对话框,添加需要查看的波形的的引脚,点击右上角的添加输入(直接输入GPIOX_IDR.Y,X为选择的GPIO口号,Y为选择的引脚号,然后回车),再将Display Type改为Bit
3.运行
-
点击左上角的run,开始运行 -
产生的波形与期望中的波形相同,仿真成功
四、总结
通过本篇博客,读者可以学习到如何安装STM32CubeMX以及如何使用STM32CubeMX进行代码的编写和输出波形的仿真,掌握了STM32CubeMX后,我们就可以更加轻松的进行程序的编写,不需要再为初始化或者编写函数而烦恼,有兴趣的读者可以在此基础上进行拓展,进一步地学习。本篇博客参考的资料已经列在下方,若存在博客没有涉及到的问题或者博客有纰漏,欢迎大家补充交流。
五、参考文献
【STM32】STM32 CubeMx使用教程一–安装教程 STM32实现LED闪烁——基于HAL库
|