前言
实际上,STM32L476RG-neucleo开发板自带STLINKv2,可以直接通过USB连接电脑,完成调试和下载。 但不是所有的开发板都板载了STLINK,而且在实际开发中USB口可能被占用,无法用来连接电脑,所以只能通过其他的方式下载,如串口或PA13、PA14接外置的STLINK。 STLINK的使用方法相对简单,购买硬件,连上4根线(VCC,GND,SWCLK,SWIO),就可以使用SWD调试或是直接下载了。 然而ST官方还给我们留了串口下载这个方法,利用BootLoader和串口模块就可以对单片机进行烧录。本文利用L476进行串口烧录实验。
理论知识
在STM32上电的时候,BOOT0、BOOT1脚的电平状态确定了STM32启动方式: BOOT0=0 BOOT1=x 从用户闪存启动,这是一般的工作模式。(x为任意) BOOT0=1 BOOT1=0 从系统存储器启动,这种模式启动的程序功能由厂家设置,一般为一段BootLoader引导程序,可以用于串口下载程序 BOOT0=1 BOOT1=1 从内置SRAM 启动,这种模式可以用于频繁快速调试。(一般用不上)
一些准备
1. FlyMcu软件
国内单片机爱好者开发的软件,可以用来将keil编译生成的hex文件通过串口下载到单片机
下载地址:MCUISP官网下载
2. 用于下载的HEX文件
让keil工程编译出HEX文件,在设置中勾选Create HEX File,编译后找到并放在显眼的位置,如桌面
3.硬件准备
STM32L476RG-neucleo开发板 CH340 USB转串口模块 (其他芯片的只要能用都行) 杜邦线四根 (两根用来短接boot0和boot1 两根用于TX和RX) Mini-USB线用于供电
BOOT0已在图上标出,BOOT1实际上是PB2 官方的BootLoader所用的串口应该是USART1,也就是PA9和PA10
操作流程
1.硬件连线
- 板子供电,这里采用的是电脑USB供电,充电宝供电,或者电源模块的VIN都可以。
- 板子左侧的BOOT0与上面的VCC短接,板子右侧的BOOT1与下面的GND短接
- 根据管脚图将PA9 Tx、PA10 Rx连接到CH340模块上,CH340连接上电脑
2. 软件操作
打开FlyMcu,点搜索串口并选择对应串口,选择HEX文件(我的这个HEX只是一段简单的带RT-Thread操作系统的LED闪烁程序),勾选校验,不使用RTS和DTR 然后点击开始编程,并按板子上的Rest按键,之后便有正在下载的提示,等待下载完成
下载完成后拔除BOOT0与VCC的连线,并按Reset按键,就可以看到LED开始规律地闪烁。
总结
利用ST官方提供的串口下载方式,在USB口或者是STLINK无法派上用场的时候,我们有了一种其他的下载办法。这个方法的通用性强,不论是F1,L4,还是H7系列应该都可以使用。虽然无法调试且下载速度较慢,但还是可以作为一个可能的烧录预案。
|