关于stm32的串口烧录学习-DTR,RTS

stm32的串口烧录是十分常用的功能,保障了程序写入的方便。

在使用FlyMcu程序进行烧写过程中出现了无法进入烧录模式的问题。排查后发现针对正点原子探索者stm32F407zg开发板,在板上boot0,boot1均链接GND时选择烧录软件“DTR低电平复位,RTS高电平进bootloader”即可成功烧录,下面具体说明原因。

DTR,RTS是ch340模块上的两个引脚,一般通过外部电路用来控制mcu进入bootloader。

查阅stm32F4系列参考手册,在手册的2.4自举配置中可以查阅到在boot端口不同的组合模式下程序自举起点。在后文中提到有关嵌入式自举程序,发现该程序就是使mcu进入串口编写flash的关键,阅读相关内容得知,该程序位与系统存储器中,而必须将boot1置0,boot0置1,才能使mcu自举从系统存储器中开始,下面我们的目标转为判断怎么使两个boot端口达到指定的电位。

查阅该开发板的相关原理图,boot1脚未接入更多有关电路,boot0在usb uart电路中有相关电路。首先要确定的是,boot0和boot1在板上均通过跳线帽置0,保证自举从主flash开始完成用户程序。分析usb uart处的boot0有关电路,想要mcu进入下载模式,必须先将DTR置1(RTS默认为0),此时Q3管导通,reset点位被拉低到RTS点位,mcu复位,随后将RTS置0,此时Q4导通,boot0脚拉高置高电平,mcu自举进入系统存储器,加载bootloader。自此,mcu成功使用串口进行烧录。

需要注意的是,FlyMcu程序中关于DTR,RTS的电平描述都是RS232电平,与前文提到的0 1均为反向的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值