STM32_串口下载程序

目录标题

前言

使用调试器下载程序又快有稳定还能使用调试功能,当然是下载调试的首选。但是拓展下串口下载程序的知识作为下载的备选方案也是很有必要的。

1、理论知识

ICP :使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。
ISP :使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。
IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。

我们用串口下载程序就是ISP。

接下来介绍下STM32的启动模式。从STM32参考手册上,可以查阅到,STM32的启动模式,共有下列三种,可以通过BOOT0和BOOT1电平的不同组合,来选择不同的启动模式。

BOOT1 BOOT0 启动模式 启动地址 说明
X 0 主闪存存储器Flash 0x0800 0000 中断向量表定位于FLASH区,主闪存被选为启动区域,最常用,用户代码。同时复位后PC指针位于0x2000000处
0 1 系统存储器 0x1FFF F000 系统存储器被选为启动区域,程序功能由厂家设置。中断向量表定位于内置Bootloader区,此时可通过串口下载程序的二进制文件到flash区
1 1 内置SRAM 0x2000 0000 内置SRAM被选为启动区域,中断向量表定位于SRAM区,同时复位后PC指针位于0x2000000处

2、串口下载具体操作

2.1、硬件准备

USB-TTL模块、STM32单片机、杜邦线

按照下面的接线表格进行连接

单片机(以STM32F103C8T6为例) USB-TTL模块
5V 5V
GND GND
PA9(USART1_TX) RXD
PA10(USART1_RX) TXD

注意:

  • 1、单片机的RX、TX和USB-TTL模块的RX、TX要互斥的连接。
  • 2、串口下载只能使用串口1,对于其他型号单片机请提前查阅引脚功能表。
  • 3、单片机在有外部供电的情况下5V引脚接不接都可

2.2、软件准备

需要下载一个串口下载软件FlyMcu。

链接: FlyMcu下载地址

下载下面的压缩包即可。

压缩包解压后会有一个.exe文件,直接双击运行即可(免安装)。

2.3、设置单片机的启动模式为系统存储器启动

要让单片机进入系统存储器启动模式有两种方式:

  • 1、在单片机上电前将BOOT0配置为1,将BOOT1配置为0(通过拔插跳线帽使BOOT引脚与VCC或GND短接来实现),这样单片机一上电就进入系统存储器启动模式了。
  • 2、若单片机已上电,BOOT模式还没配置,可以配置跳线帽后按单片机的复位键使其进入系统存储器启动的模式。

2.4、软件配置

我们打开FlyMcu后,可以看到下面的界面,我们按着下面的步骤进行配置。

1、点击搜索串口,然后选中串口。

2、配置通信波特率。我们选择57600/76800均可,其它的只要别太高太低应该也是可以的。

3、选择一个Hex文件。如果有不会生成的可以看下面的"附:生成hex文件 "。

4、勾选"校验"、"编程后执行"。

5、取消勾选"编程到Flash时写选项字节"。

6、选择"DRT的低电平复位,RST高电平进BootLoader".

7、接下来就可以点击"读器件信息"了,此时若右侧窗口出现了器件信息表明连接成功了

2.5、下载程序

此时我们点击"开始编程",右下角会有一个进度条,等待进度条结束,程序就通过串口下载到单片机了。若你的程序有现象(比如灯会闪烁等),我们就可以看到。

若此时点击复位或重新上电会发现刚才的现象消失了,不过不用担心,这是因为现在单片机的启动模式还是系统存储器,我们只需要将跳线帽插回原来的样子(BOOT0连GND,BOOT1连GND),此时点击复位,单片机会从主闪存Flash启动,此时程序就会正常运行了。

附:生成hex文件

1、我们在keil中打开要调试下载的工程。

2、点击魔法棒

3、点击"Output"

4、勾选"Create HEX File"

5、点击OK

6、编译工程

7、此时我们在工程文件夹的Objects就可以看到.hex文件了。

相关推荐
帅次9 小时前
系统分析师-信息物理系统分析与设计
stm32·单片机·嵌入式硬件·mcu·物联网·iot·rtdbs
澜莲Alice9 小时前
STM32 MPLAB X IDE 软件安装-玩转单片机-英文版沉浸式安装
stm32·单片机·嵌入式硬件
良许Linux9 小时前
IIC总线的硬件部分的两个关键点:开漏输出+上拉电阻
单片机·嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘10 小时前
单片机基础知识 -- ADC分辨率
单片机·嵌入式硬件
Q_219327645510 小时前
车灯控制与报警系统设计
人工智能·嵌入式硬件·无人机
雾削木11 小时前
树莓派部署 HomeAssistant 教程
stm32·单片机·嵌入式硬件
Q_219327645511 小时前
基于单片机的破壁机自动控制系统设计
单片机·嵌入式硬件
我是一棵无人问荆的小草11 小时前
stm32f103芯片多个IO配置成外部中断
stm32·单片机·嵌入式硬件
wjykp11 小时前
ESP32xxx烧录
stm32·单片机·嵌入式硬件
早起huo杯黑咖啡12 小时前
【NOR Flash】关于芯片的高耐久性分区的编程/擦除周期和最小保留时间的数据
单片机·嵌入式硬件