STM32L476RG利用串口下载程序
STM32L476RG利用串口下载程序
- 前言
- 理论知识
- 一些准备
- 1. FlyMcu软件
- 2. 用于下载的HEX文件
- 3.硬件准备
- 操作流程
- 1.硬件连线
- 2. 软件操作
- 总结
前言
实际上,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系列应该都可以使用。虽然无法调试且下载速度较慢,但还是可以作为一个可能的烧录预案。
操控者: 使用定时器6作为时基源,然后延时快10倍rt_thread_delay(1000); 和rt_thread_mdelay(1000);一样
wdfk_prog: putty的tab键补全咋设置合适?这里tab还得自己敲个回车