STM32学习笔记(程序下载与启动流程)

烧录

主流的烧录程序的方法有三种:

我们电脑一般只有USB接口,所以无论用这三种的哪一种,都需要一个USB转对应协议的转换器。有的时候这个转换器带有更高级的调试功能,常见的转换器有:

PC上还需要有烧录程序的软件,很多IDE里面集成了烧录程序,这里列举部分常用软件:

STM32的启动流程

STM32可以通过配置BOOT0和BOOT1引脚的电平来决定启动方式:

image

CPU上电后会做下面两件事:

问题来了,既然CPU上电后都是从0x0000,0000启动,为什么配置BOOT0和BOOT1引脚,可以实现不同的启动方式?

这是因为STM32根据BOOT0和BOOT1的不同,将不同的地址映射到了0x0000,0000。

串口下载程序原理

由于串口通信最为简单易懂,上位机程序可以自己写,不依赖特定IDE或烧录软件。串口通信电路实现容易,只需要在开发板上加一个CH340芯片,价格便宜。所以重点研究一下串口下载程序原理。

当我们将BOOT0置1,BOOT1置0,时会从ROM启动,ROM里是厂家的bootloader程序,也称自举程序。这段程序的主要作用是从串口接收数据并写入到Flash中。具体如何与bootloader通讯参阅stm32isp application note.pdf

用串口下载程序的流程是:

感觉比较麻烦,有没有什么方法能省去复位和更换跳线帽的步骤呢?
下载程序用的是TTL串口,只有TXD、RXD两根线。但是USB转串口芯片CH340还支持RS232协议。利用其中DTR、RTS两个数据线分别控制BOOT0、复位引脚,即可实现自动变化启动模式和复位。

image

posted @ 2023-10-04 22:53:16
评论加载中...
发表评论