文章目录

  • 摘要
  • STM32启动模式
  • 下载步骤
  • 准备HEX文件
  • 连接单片机与串口模块
  • 单片机进入bootloader模式
  • 下载工具连接单片机
  • 装载hex文件


摘要

  这一章主要介绍如何使用串口模块对STM32进行程序下载,使用ST-Link下载程序需要购买ST-Link,同样的使用UART下载程序也需要买一个USB转串口模块,而且串口模块相对来说比较便宜。但使用UART方式下载的缺点是下载速度缓慢。
  这里我们依然使用STM32CubeProgrammer这个工具进行下载。
  使用这种方法下载程序,必须有一个前提条件,那就是单片机系统在设计时,有预留出BOOT0引脚的控制电路,在进行下载之前,我们必须要先了解一些必要的知识。

STM32启动模式

  如果要使用uart方式对STM32下载程序,必须要先使单片机进入Bootloader下载模式(ISP下载)。
  STM32有三种启动模式,上电复位后通过对单片机的BOOT0和BOOT1引脚的电平进行控制单片机以什么方式启动。
  STM32 三种启动模式对应的存储介质均是芯片内置的,分别为:

启动模式

注释

主闪存存储器

芯片内置的Flash。这也是正常工作模式

SRAM

芯片内置的RAM 区,就是内存啦。

系统存储器

芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP 程序。这个区域的内容在芯片出厂后不能够修改或擦除,即它是一个ROM 区。

  在每个STM32 的芯片上都有两个管脚BOOT0 和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:

BOOT1

BOOT0

启动模式

说明

x

0

主闪存存储器

从主闪存存储器启动

0

1

系统存储器

从系统存储器启动

1

1

内置SRAM

从内置的SRAM启动

这里借鉴了STM32 BOOT0与BOOT1 的应用原理 STM32 BOOT0与BOOT1 的应用原理

  一般单片机控制板的设计上会把BOOT0 和BOOT1 跳线都跳到0(地)。在进行ISP下载时,把BOOT0拉高,上电复位,下载完程序后,再把BOOT0拉低,再次复位后即可开始执行程序。

下载步骤

准备HEX文件

  在下载之前,先要准备好需要下载进入单片机的程序文件,HEX文件的生成方法请转上一章查看。STM32程序下载2:通过STM32CubePro-ST-Link下载,转第一节:准备hex文件。

连接单片机与串口模块

把串口模式与单片机的串口1连接好。

注意:
串口模块的RXD连接单片机的TXD,串口模块的TXD连接单片机的RXD,串口模块的GND与单片机的GND连接。如果单片机需要串口模块供电,先要注意检查单片机系统是3.3V供电还是5V供电,连接相应的电源在单片机系统上。

  将串口模块插在电脑上,此时电脑的设备管理器中应能找到对应的端口号。如下:

因各种串口模块所使用的接口芯片不同,红框中的端口名称也会不同,记下串口号,比如这里我的串口号为com15。

stm32cubeMX 忘记配置下载 stm32cubeprogrammer 下载程序_stm32cubeMX 忘记配置下载

单片机进入bootloader模式

  前文说过,进入bootloader模式,需要将BOOT0拉低,再复位。
  如果单片机系统上BOOT0使用按键进行控制,那么正确的顺序应该是:先按下BOOT0,保持BOOT0在按住时,在按一下复位键,系统复位时检测到BOOT0为低电平时,则会自动进入Bootloader模式。松开复位键后在松开boot0按键即可。待程序下载完成后,在按一下复位键,程序即可自动开始运行。
  如果单片机系统中,没有设计复位按键,则所有复位操作均需要通过断电在上电进行。

下载工具连接单片机

  这种下载方法需要安装STM32CubeProgrammer下载工具。安装方法转《STM32程序下载0:STM32CubeProgrammer安装》

  打开STM32CubeProgrammer工具,设置连接模式为UART,设置串口号,如果没有则点击右侧的刷新图标刷新一下。

stm32cubeMX 忘记配置下载 stm32cubeprogrammer 下载程序_stm32cubeMX 忘记配置下载_02

设置好后,确定单片机已进入bootloader模式,点击connect图标连接单片机。

stm32cubeMX 忘记配置下载 stm32cubeprogrammer 下载程序_arm_03

如果出现上面的报错,则重新检查:

  1. 检查串口号是否正确设置。
  2. 检查单片机是否进入bootloader模式.(进入bootloader模式比较明显的现象时原本执行的程序不进行执行)
  3. 检查串口模块与单片机接线是否正确。

检查确认完毕后,再次点击连接。显示如下,红框中显示单片机中flash的内容,下方对话框提示读取成功。则代表通信正常。

stm32cubeMX 忘记配置下载 stm32cubeprogrammer 下载程序_串口_04

装载hex文件

点击上方Open file图标,在弹出的窗口中选择需要下载的hex文件,点击打开。

stm32cubeMX 忘记配置下载 stm32cubeprogrammer 下载程序_stm32_05


打开后,下方则显示待写入单片机flash中的内容,点击右上方Download图标,即开始下载。

stm32cubeMX 忘记配置下载 stm32cubeprogrammer 下载程序_串口_06

  等待下载完成,确保BOOT0已经拉到低电平,按一下复位按键,则开始执行下载进去的程序,同时因单片机退出了bootloader模式,则会与STM32CubeProgrammer断开连接。

stm32cubeMX 忘记配置下载 stm32cubeprogrammer 下载程序_stm32_07