1.问题来源
虽然32烧录程序仿真器用的很多,但很多初学者在用串口下载时因为DTR RTS 电平选择错误导致芯片下载超时,从而无法下载程序。
该问题罪魁祸首在于MCUisp、Flymcu软件的配置
2.问题原理
先来看ISP一键下载原理图
依据DTR控制NRST进行复位,RTS将BOOT0拉高的下载需求来说,应将DTR置位为1,将RTS置位为0
但下载软件采用的是R232标准和我们理论的TTL标准是刚好相反的:
DTR控制复位: DTR输出高电平才能拉低DRST进入复位
boot 0 需要拉高电平,才能进入ISP,所以RTS必须输出低电平
MCUISP 和TTL逻辑上是反过来的,它是232标准
所以理论上是1 0;
但在这软件上你得用0 1
(这部分具体的可以参考野火的视频,他在结尾的时候提了一句,很多初学者都没注意到这点)
3.问题解决
MCUisp选择低电平复位,RTS高电平进Bootloader
注:如果下载成功,程序仍不执行,可能是软件未将boot0 置位为0,即回到原始状态。手动按下复位键,程序便可执行。
具体细节原理可去参考野火的视频,在视频最后进行了讲解