Duanxx的STM32学习:STM32下载方式选择

时间:2023-03-09 05:43:38
Duanxx的STM32学习:STM32下载方式选择

前几天熟悉了STM32的启动方式。主要由Boot0和Boot1设置

如今须要解决的就是STM32的下载的问题。

一開始的时候,我选择的是SWD下载。这样的下载方式须要Boot0=0。Boot1=0。占用两个线,同一时候须要两个电阻和一个电容:

Duanxx的STM32学习:STM32下载方式选择

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF1bnh4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

可是我的设计上须要使用串口。利用串口下载程序也是下载到Main
Flash中,既然这种话,直接使用串口下载程序就能够了。

可是使用串口下载程序须要重复的将Boot0抬高,然后复位,然后将下载程序,然后将Boot0拉低,这个操作比較的复杂。

在正点原子的开发板上看到过他的利用串口一键下载程序的电路,能够自己主动的完毕上面的操作,只是也挺麻烦的。

这里我測试了一下串口下载的方式,发现了两个非常有意思的现象:

1:Boot0和Boot1即便没有通过下拉电阻接地,也就是处于悬空的状态,STM32也能够从Main Flash中启动

2:在通过串口下载程序时,Boot0必须上拉。Boot1必须下拉。

对于第一个现象,显然是不可取的,不管怎么样。还是不要让引脚处于悬空状态(电平不确定的状态)比較好。

对于第二个现象,是显然的

只是这样就能够有以下这样的下载设计了:

这里Boot0和Boot1,仍然是通过100K的电阻下拉

然后把Boot0通过一个引脚或者过孔引出来,在下载程序时,Boot0接上3.3V,考虑到限流的问题,能够在Boot0和3.3V中间加一个4.7k的电阻。

这里电阻和3.3V均不在板子上,而在在串口串口助手那端。

至于复位操作,直接用断电来取代就能够了。无需外接复位键。

Duanxx的STM32学习:STM32下载方式选择