前几天熟悉了STM32的启动方式,主要由Boot0和Boot1设置
现在需要解决的就是STM32的下载的问题。
一开始的时候,我选择的是SWD下载,这种下载方式需要Boot0=0,Boot1=0,占用两个线,同时需要两个电阻和一个电容:
但是我的设计上需要使用串口,利用串口下载程序也是下载到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均不在板子上,而在在串口串口助手那端。
至于复位操作,直接用断电来代替就可以了,无需外接复位键。
原文地址:http://blog.csdn.net/daunxx/article/details/40429113