【软件】常用软件教程二:程序下载方法

一、简介

  STM32的常用程序下载方式,包括串口、SWD和J-Link,以及启动配置如何通过BOOT0和BOOT1设置,以及BootLoader在不同启动模式下的作用。下载程序方式可以分为几种,一种是通过软件进行hex文件进行下载,或者通过编译环境自带的下载环境进行hex文件以及bin文件的下载。其次就是通过第三方软件使用串口进行程序下载。
使用的软件如下所示:

常用的程序下载方式:

  • 串口转USB:需要用到一个CH340芯片,网上购买stm32基础套件时一般会有使用该芯片连接USB的模块,连接该芯片时需要占用芯片的USTART_TX和USTART_RX,分别对应芯片的PA9和PA10
  • SWD方式:例如,st-link v2,需要使用stm32的SWDIO和SWCLK引脚,分别对应芯片的PA13和PA14
  • J_LINK方式:需要使用stm32的TCK(时钟)、TMS(模式选择)、TDI(数据输入)、TDO(数据输出)、TRST(复位)引脚

二、STM32的启动配置

  启动配置:指定程序开始执行的位置。由于stm32芯片内部有多种存储设备,可以让程序从不同的地方启动,因此,需要对启动的存储设备进行配置。

1.SWD下载
不需要对电路进行特殊处理,只需要将单片机的引脚SWDIO和SWCLK引出来,和烧录器的SWDIO和SWCLK引脚相连即可进行程序的烧录,烧录文件为hex文件。
(1)先打开下载软件,选择新建一个工程。具体操作如下:
在这里插入图片描述
(2)配置下载工程的工程MCU芯片型号
在这里插入图片描述
(3)选择自己程序所使用的芯片名称
在这里插入图片描述
在这里插入图片描述
(4)打开需要下载的hex工程文件
在这里插入图片描述
在这里插入图片描述
(5)点击连接,进行连接,并且连接成功之后如下显示:
在这里插入图片描述
在这里插入图片描述

(6)连接成功之后,直接进行下载
在这里插入图片描述
(7)下载成功后重新启动电源即可。
在这里插入图片描述

2.串口下载
(1)stm32可以通过配置BOOT0和BOOT1引脚设置启动配置:

  • BOOT1=x,BOOT0=0:最常用的模式,执行Flash程序存储器中的程序
  • BOOT1=0,BOOT0=1:串口下载模式,执行系统存储器中的程序,该程序是一段BootLoader程序,会将串口发送来的数据写入到Flash程序存储器
  • BOOT1=1,BOOT0=1:内置SRAM模式,一般用于调试,较少使用

启动配置只在上电复位时有效,也就是说,只有当通电和复位时会根据BOOT0和BOOT1确定启动配置。

(2)使用串口下载程序之前需要将CH340的引脚接好,具体连线为:

序号接线方式
1A9 -> RXD
2A10 -> TXD
3GND -> GND
4VCC -> 3.3V

然后将USB TO TTL插入电脑的USB接口,并将电源线接好。

(3)设置如图所示:
在这里插入图片描述
先设置为串口下载模式(BOOT1=0,BOOT0=1),然后按下复位(如果是刚上电,可以不用按复位),再点击“开始编程”,程序就会下载到stm32中开始执行。

  • 当BOOT1=0、BOOT0=1时,如果按复位,此时就会执行BootLoader程序等待串口数据写入,当数据写入Flash程序存储器后,还是会执行Flash程序存储器中的程序
  • 当BOOT1=x、BOOT0=0时,如果按复位,此时还是会执行Flash程序存储器中的程序

因此,如果是开发,可以直接使用串口下载模式,每次编译好HEX文件后,点击复位,然后下载程序。


三、串口下载电路

  通过控制BOOT0_CTRL的高低电平,来控制BOOT0的高低电平,并且可以通过程序来控制。
在这里插入图片描述

int reset(void)
{
    rt_base_t pin = GET_PIN(D, 0);
    rt_pin_mode(pin,PIN_MODE_OUTPUT);
    rt_pin_write(pin, PIN_HIGH);
}

static int reset_boot(int argc, char **argv){
    reset();
    rt_hw_cpu_reset();
}
MSH_CMD_EXPORT_ALIAS(reset_boot, chgboot, change boot mode to uart1);

通过先下发指令,进入下载模式,然后再通过软件进行程序的下载即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值