本文是从Laisheng.com转移而来,非常感谢Laisheng。
STM32支持仿真器和串行端口下载程序。
要介绍的内容属于串行端口下载,这就是我们通常所说的ISP下载。
手动ISP下载程序,我们已经知道,控制BOOT0引脚来实现。
当STM32上电时,它将自动检测BOOT0引脚的电平。
如果过高,请等待用户下载程序。
如果它很低,请运行用户先前下载到微控制器的程序。
因此,我们需要引出BOOT0引脚,然后将其控制为接地或连接至VCC以下载或运行程序。
在调试过程中,我们需要连续控制BOOT0,这很麻烦。
然后,自动ISP应该在现场。
自动ISP,将BOOT0直接接地,然后在每次打开电源时运行该程序,只需单击“下载”按钮即可。
单击计算机上的“开始”按钮开始下载程序,下载完程序后,程序将开始执行。
为此,您需要使用串行端口握手信号DTR和RTS。
以下是深圳市鹏远电子科技有限公司开发的免费ISP下载软件,请参见红色框中的部分。
DTR连接到RESET(复位引脚)以控制复位,RTS连接到BOOT0以控制程序操作或等待下载。
下面说明如何使用USB转TTL芯片实现STM32自动ISP。
CH340芯片如下图所示:CH340芯片,DTR和RTS引脚通常为高电平,低电平有效。
由于STM32的RESET引脚通常是高电平和低电平复位,因此DTR可以直接连接到RESET。
但是BOOT0是高级下载程序,而低级正在运行的程序恰好是RTS的对立面,因此我们需要将其反转并添加一个NPN晶体管。
电路如下图所示:ISP软件的选择:阅读上图的选择后,肯定会有人怀疑。
从逻辑上讲,它应该是低级重置,然后低级进入BOOTLoader。
但是,要注意的是,这里提到的高电平和低电平是针对计算机的原始9针串行端口,即“ 232电平”。
我们所使用的USB转TTL芯片是“ TTL电平”,正好相反。
下图显示了下载过程和结果:注意:CH340刚开机时需要花费几秒钟的时间才能稳定下来。
在此期间,DTR引脚将变为低电平两次或三倍,这将导致MCU在上电后复位。
稳定两次后,程序操作将不会受到影响,为两次或三次。
如果不想在开机时多次复位微控制器,请在开机时将DTR与RESET断开。
文章来源:http://www.rationmcu.com/elecjc/947.html关注微信公众号“ Fun Zhuan Embedded”,后台回复“ 128”。
以获得干货信息的摘要,并在答复中返回“ 256”。
加入技术交流小组。
精彩的技术文章推荐01 |插入排序:最直观的排序算法02 |如何学习编程?理解语法,编写更多内容,练习思维03 |如何检查MCU编程中版本之间的代码差异:代码比较工具04 |在编程时如何控制程序版本?免责声明:本文内容经21ic授权后发布,版权归原作者所有。
该平台仅提供信息存储服务。
本文仅代表作者的个人观点,并不代表该平台的立场。
如有任何疑问,请与我们联系,谢谢!