目录
入门STM32CubeMX第一课,点亮第一个LED灯:
1. CubeMX介绍
STM32用的CubeMX是ST公司出品的一款C代码生成器软件,它的图形化工具界面可以让使用者可视化地选择所需的芯片,并设置选用任一引脚、任一外设。另外的,CubeMX还提供了自动识别引脚冲突、设置时钟树、功耗预测等功能。使用CubeMX能减轻底层开发工作量,节约时间。
2. STM32CubeMX软件安装
2.1 STM32CubeMX软件安装
打开STM32CubeMX下载安装网站:https://www.st.com/en/development-tools/stm32cubemx.html
window系统则选择以下下载选择:
没有用户需要注册一个用户,因为后面在STM32CubeMX界面下载安装包的时候需要用到,不然需要手动下载相关芯片包。
下载安装完进入STM32CubeMX界面,然后进行登录
2.2 相关芯片包下载
登录完之后进行相关芯片包下载
相关芯片包选择如图所示:
3. 点亮第一只LED
下载完之后选择进入主页面选择:
进入之后搜索芯片进行选择:
3.1 GPIO参数
在固件库LED配置,需要配置GPIO引脚、输出速度、模式,故在STM32 CubeMx我们直接进行选择就行,让软件直接帮我们生成配置就行。
①第一步选择GPIO引脚,然后选择GPIO_Output推挽输出模式
3.2 GPIO速度
3.3 Debug
在SYS中选择Serial Wire使用SWD协议下载和调试,这一步如果没有选择则以后下载程序可能报错,导致无法下载进去。
Debug :
默认是关闭的,如果不使用调试器关闭即可,即No Debug;
在STM32CubeMX的SYS选项栏中有SW和JTAG协议选项,用户可以根据需要选择相应的协议;
JTAG调试接口(JTAG-DP)需要5个引脚;CubeMX中可选择5pin或4pin的JTAG,5pin比4pin多了一个复位引脚。
SW调试接口(SW-DP)需要2个引脚。二者之间有复用引脚。SW调试端口采用同步串行协议:SWCLK引脚为从主机到从机的时钟信号;SWDIO为双向数据信号。
ST-Link采用的是SW调试接口,选择Serial Wire;
J-Link采用的是JTAG调试接口,根据实际要求选择JTAG(4pin)或JTAG(5pin);
如果使用J-Link但是采用SWD协议,也可以选择Trace Asynchronous Sw;
Trace Asynchronous Sw 模式有时候也可以解决使用ST-Link烧录之后无法烧录和调试的情况
为了避免一次烧录之后无法下一次烧录或者调试的情况,推荐选择Serial Wire
如果在STM32CubeMX中选择SW协议,MDK也必须 选择SW协议。JTAG协议配置也同理。否则会造成下载和调试失败。在实际项目中SW协议使用使用的比较多,速度更快,占用的引脚更少,推荐配置成SW协议,即Serial Wire模式;
System Wake-Up :
设置低功耗模式下的自动唤醒功能,通过引脚PA10。
Timebase Source :
一般指HAL的时基,即HAL库中的uwTick,用于实现HAL_Delay()以及作为各种timeout时钟的基准。一般情况下直接选择默认的SysTick(嘀嗒定时器)来维护SYS Timebase Source即可,即直接放在SysTick_Handler()中断服务函数中,也就是下面的HAL IncTick()函数。
SYS不进行选择默认选项的后果: 程序将无法下载进入芯片中
解决方案:参考以下博主方法:
https://blog.csdn.net/qq_42789398/article/details/121191453
3.4 Clock Configuration配置
3.5 Project Manger配置
3.6 Code Generator配置
3.7 GENERATE CODE生成文件
①在keil5中生成LED的GPIO配置
②keil文件配置
3.10 编译运行
最后运行编译下载进去单片机里面
实物效果图