单片机开发工具篇:(六)STM32CubeMX 的使用,包括软件和固件包的下载、以及基础使用
上一篇 | 下一篇 |
---|---|
keil 中常用的 C 语言(简述) |
目 录
- STM32CubeMX 的使用
- 1)相关链接:
- 2)简介:
- 3)使用:
- ①固件包的存放位置设置:
- ②关联固件包:
- ③新建工程步骤:
- 1. 为什么要在预留的地方写对应的代码?
- 2. 相关标识符含义:
- 4)补充:
STM32CubeMX 的使用
直接从官网下载(注册个账号,支持中国大陆),速度较慢,但还好。
注意:这个软件只支持 STM32 系列的单片机。并且初学者不建议使用,初学建议从基础开始学,这个是偷懒的一个工具。
使用目的:对于某个外设,可以用软件生成初始化代码,然后 参考理解。
STM32CubeMX 是专门为 HAL 库 编程用的。
1)相关链接:
官方下载链接:STM32CubeMX | Software - 意法半导体STMicroelectronics
软件下载教学视频:STM32CubeMX快速安装指南:一步一步教你下载和安装 保姆级教程ST官方下载 安全可靠_哔哩哔哩_bilibili
固件包下载教学视频(可以直接在 ST 官网搜 STM32cube,然后选对应的型号和版本):
同时包括下载和使用的教学视频:全是干货 | STM32CubeMX工具入门【初学必备】_哔哩哔哩_bilibili
【注意】从 6.0 版本之后,就不需要再手动搭建 java 环境了(内置了)。
2)简介:
STM32CubeMX 是 ST 开发的一款图形配置工具,可通过配置自动生成初始化代码(并不是逻辑代码)。
搭配不同系列的 STM32Cube 固件包,即可支持不同系列的 STM32 芯片。
3)使用:
①固件包的存放位置设置:
②关联固件包:
三种方式:
-
联网下载并自动解压固件包:
先勾选所需下载的固件包,然后点击 Install 按钮,即可自动下载并解压
(压缩包和解压缩后的文件夹都会存放在设置的固件包存放地)。 -
本地关联解压固件包:
将已有的固件压缩包,放进设置好的固件包存放地,然后点击 From Local … 按钮,即可自动解压。
-
直接将解压缩后的固件包文件夹放进设置好的固件包存放地。
【注意】上述三种方式进行后,相关的固件包前方框就会显示绿色。
③新建工程步骤:
这里可以参考一些网上的教学视频。
- 工程初步建立: 新建工程,选择芯片型号
- 时钟模块配置: 设置 HSE、LSE、MCO
- 时钟系统配置: PLL、SYSCLK、AHB、APB1、APB2 等等
- GPIO引脚配置: 配置所需的引脚
- Cortex内核配置: SYS(DEBUG)配置、NVIC(优先级分组)
- 生成工程源码: 设置工程,MDK 等,最后生成代码工程
- 编写用户程序: 在 main.c 文件预留的位置编写代码
配置的时候,基本上从第三步开始,就要对照开发板的手册和原理图来设置了。
SYS(DEBUG)配置的时候,如果没有配置,那么就默认使用 JTAG 。选项中的 Serial Wire 就是 SWD。
NVIC 默认配置是 “4 位抢占优先级,0 位响应优先级” 。
1. 为什么要在预留的地方写对应的代码?
是因为如果有要修改的地方,可以再用 CubeMX 生成初始化代码,而 STM32CubeMX 有一个 “用户代码保留机制” ,它会先重新生成所有初始化代码,然后扫描本地文件中的 USER CODE BEGIN/END
区域,将我们自己写的代码“提取”出来,重新插入到新生成的文件中,而其他不在 USER CODE
区域的代码可能会被覆盖。
2. 相关标识符含义:
GPIO:
-
GPIO optput level:GPIO输出电平
- Low:低电平
- High:高电平
-
GPIO mode:GPIO 模式
- Output Push Pull:推挽输出
- Output Open Drain:开漏输出
-
GPIO Pull-up/Pull-down:GPIO 上下拉
- No pull-up and no pull-down:不上拉也不下拉
- Pull up:上拉
- Pull down:下拉
-
Maximum output speed:最大输出速度
- Low:低速
- Medium:中速
- High:高速
4)补充:
初始化代码和逻辑代码的区别:
名称 | 中文含义 | 简要定义 |
---|---|---|
初始化代码 | Initialization Code | 程序启动时一次性执行的代码,用于配置硬件、外设、时钟、引脚等,为后续运行做准备 |
逻辑代码 | Logic Code | 程序运行过程中持续执行的代码,实现具体功能(如控制、计算、通信等) |
一句话总结:初始化代码是 “准备阶段” ——让硬件 ready;逻辑代码是 “执行阶段” ——让系统 work。