STM32程序下载/串口一键下载电路
后面的一键下载电路,既可以下载程序,还能当调试串口用、如果是用TYPE-C接口引进来的,还节省了数据线哈哈哈哈
这是区别于STLINK,CMSIS-DAP等下载方式的uuuuuu
常见的串口下载使用mcuisp和FlyMcu来实现
此处以FlyMcu软件使用为例,来介绍:FlyMcu模拟仿真软件是一款用于STM32芯片ISP串口烧录程序的专用工具,免费,且较为非常容易下手,好用便捷。
打开FlyMcu软件,具体配置见图 下载配置和下载成功现象 :①搜索串口,设置波特率为76800(不要超过115200)、 ②选择要下载的HEX文件、③校验、编程后执行、④DTR低电平复位,RTS高电平进入bootloader(上位机软件为232逻辑电平标准)、⑤开始编程、⑥选项字节的勾去掉,如果勾选上则下载程序后不能自动运行。 如果出现一直连接的情况,按一下开发板的复位键即可。 下载成功后的现象具体见图 下载配置和下载成功现象 中的下载成功现象指示的方框部分。

注意:mcuisp和FlyMcu上位机软件都是基于232逻辑电平标准,而后面介绍ISP一键下载原理分析及硬件原理图是基于TTL逻辑电平标准,232标准与TTL标准在逻辑电平上是相反的,所以导致实际硬件上是DTR高电平复位,RTS低电平进入bootloader,而上位机软件设置为DTR低电平复位,RTS高电平进入bootloader。
这两个软件通常需要配合串口一键下载电路来使用。
FlyMcu 是一款专为 STM32 系列微控制器设计的编程与调试工具,主要用于通过串口对 STM32 芯片进行固件烧录。它可以利用串口的 DTR 和 RTS 信号来控制 STM32 的复位和进入 BootLoader 状态,从而实现一键下载功能。当硬件具备串口一键下载电路时,FlyMcu 软件可以通过配置 DTR 和 RTS 引脚,自动控制 BOOT0 和 RST 的电平,无需频繁切换跳线帽和按复位键。
如果没有串口一键下载电路,也可以使用 FlyMcu 软件,但需要手动设置 BOOT0 引脚的电平,并在下载过程中按复位键,操作相对繁琐。
ISP简介
ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。
ISP的时候需要用到(bootloader)自举程序,自举程序存储在 STM32 器件的内部自举 ROM 存储器(系统存储器)中。 其主要任务是通过一种可用的串行外设( USART、 CAN、 USB、 I2C 等)将应用程序下载到内部 Flash中。 每种串行接口都定义了相应的通信协议,其中包含兼容的命令集和序列。
BOOT配置
在ISP下载电路中,我们需要配置BOOT引脚,有关BOOT引脚不同的配置会产生不同的启动方式,见下表。
| BOOT0 | BOOT1 | 启动方式 |
|---|---|---|
| 0 | X | 内部FLASH |
| 1 | 0 | 系统存储器 |
| 1 | 1 | 内部SRAM |
ISP普通下载
现在我们针对USART1的ISP进行分析,通常的ISP的步骤如下:
1. 电脑通过USB转串口线连接STM32的USART1, 并打开电脑端的上位机;
2. 设置跳线保持BOOT0为高电平, BOOT1为低电平;
3. 复位单片机使其进入bootloader模式, 通过上位机下载程序;
4. 下载完毕,设置跳线保持BOOT0为低电平, BOOT1为低电平;
5. 复位单片机即可启动用户代码, 正常运行。
以上步骤有个不好的地方就是下载程序需要跳线及复位操作,很繁琐。通过对ISP的原理认识,一键ISP就诞生了,它需要做的事情就是用上位机去控制BOOT0脚和单片机的复位脚,原理图:

一键下载电路电路说明和测试步骤
已测试可以正常使用:我的这个是外置测试用的,BOOT0和BOOT1就在原来板子上都是10K拉低,不然可能下载不成功哦
使用这个电路,既可以下载程序,还能当调试串口用、
如果是用TYPE-C接口引进来的,还节省了数据线哈哈哈哈

切记BOOT0和BOOT1原来的电路不要改动哈,保留即可,参照正点原子的这个板子


