1)直接上图
2.启动模式
STM32上电后的BOOT1/0的电平状态会决定它的运行模式。很明显,我们如果上电后要进入自己写的程序并运行,那么BOOT0就要为0,BOOT1此时高低无所谓;而要进入下载模式就需要BOOT0为1而BOOT1为0;为此我们可以在电路上先将BOOT1直接拉低,然后单纯控制BOOT0。
3)重点讲解如下:
2.复位后单片机的状态
事实上,STM32在上电复位后的第4个SYSCLK后,会锁住BOOT引脚的状态,此时读取BOOT状态决定进入哪个模式。因此我们的方法可以同时将BOOT0拉高、复位拉低,一段时间后(高于4个SYSCLK),拉高复位,进入下载,然后同时释放复位和BOOT。
3.电路和时序分析
我查了资料,说RST#和DTR#是低电平有效,因此没有动作的时候都是保持高电平的。而Q1和Q2三极管导通时的RST#和DTR#电平需要跟我下图标的一样才行,否则对应管子就不导通。而当我们用MCU ISP软件下载程序时,它控制CH340两个引脚的时序如下图所示。以开始DTR#=1,RTS#=0,此时两个管子都导通,BOOT0=1,RESET=0;一段时间后DTR#拉低,此时Q1截止,RESET被拉高,系统进入下载模式,下载结束后两个引脚重新拉高,Q1/Q2均截止;