STM32串口下载程序教程
STM32 使用串口下载程序
1.串口下载的原理
就像是一个机器人,给自己换电池一样,换电池,需要先拆掉旧电池,再装上新电池,但是一旦把旧电池拆掉,机器人本身就无法工作了,这样之后装上新电池的工作就没法完成了,所以为了能让机器人换电池,我们还需要再额外做一个小机器人,需要换电池的时候,就启动这个小机器人,小机器人完成整个换电池的工作之后,再返回大机器人运行。
同理,STM32通过串口进行程序的自我更新,就需要这样一个小机器人,这个小机器人就是BootLoader,BootLoader是ST公司写好的一段程序代码,这段程序的存储位置,就是ROM区的最后,0x1FFF F000,这段区域叫做系统存储器,存储的是BootLoader程序,或者叫自举程序。用途是程序自我更新,串口下载。在更新过程中,BootLoader接收USART1数据,刷新到程序存储器Flash,这是主程序就处于瘫痪状态,更新好之后再启动主程序,执行新程序,这就是串口下载的流程。
1.1启动配置
由于系统复位后,在SYSCLK的第四个上升沿,BOOT引脚的值将被锁存,所以说,每次切换Boot引脚之后,都要按一下复位。
2.每次串口下载都要切换跳线帽,如何解决

由于其在软件上,人工加入了一条跳转指令(成功从0x0800 0000开始运行),这样就能执行主程序了,但是这样只是一次性的,复位之后,执行的程序仍然是BootLoader