当我使用一款串口助手 里面有带DTR设置时,如下图右下方标出:
会出现标题的现象
现在分析:
1.reset and run用的是swd接口,其上有连MCU的rst引脚,可能是通过硬件来reset mcu的,也有可能是发送软重启命令,参考swd protocol里面描述的“When the erase is complete reset the device by pin reset or by using the SYSRESETREQ bit of AAP_CMD”
2.寄存器软重启则不可能通过硬件来reset
关于第1个里面是不是硬件重启可以用示波器看看,我这边手上没有示波器就没管了。因为2已经足够说明不是重启本身的问题,我代码直接软重启都不起作用,就推测是BOOT出了问题,而正点原子的板子里面有个USB-串口一键下载电路:
BOOT0还有个100K的下拉在别处没有标出,关于这个一键下载电路的原理网上搜“正点原子STM32一键下载电路”之类的关键字即可
我测试当串口助手单击使能了DTR后(使能会标红点),我测试板子上面的DTR电平如下:
由于DTR在上电几秒后被PC端通过串口助手拉低了,拉低后BOOT0会拉高,BOOT0拉高后,由于板子上面我们BOOT1是拉低的,对照启动信息知道,此时由系统存储器启动,进入MCU内置bootloader,是给串口下载用的。因此进了bootloader打转去了,表现就是重启失败,实际上重启成功了,只是一直在系统存储器打转。
当我使用一款串口助手 里面有带DTR设置时,如下图右下方标出:
会出现标题的现象
现在分析:
1.reset and run用的是swd接口,其上有连MCU的rst引脚,可能是通过硬件来reset mcu的,也有可能是发送软重启命令,参考swd protocol里面描述的“When the erase is complete reset the device by pin reset or by using the SYSRESETREQ bit of AAP_CMD”
2.寄存器软重启则不可能通过硬件来reset
关于第1个里面是不是硬件重启可以用示波器看看,我这边手上没有示波器就没管了。因为2已经足够说明不是重启本身的问题,我代码直接软重启都不起作用,就推测是BOOT出了问题,而正点原子的板子里面有个USB-串口一键下载电路:
BOOT0还有个100K的下拉在别处没有标出,关于这个一键下载电路的原理网上搜“正点原子STM32一键下载电路”之类的关键字即可
我测试当串口助手单击使能了DTR后(使能会标红点),我测试板子上面的DTR电平如下:
由于DTR在上电几秒后被PC端通过串口助手拉低了,拉低后BOOT0会拉高,BOOT0拉高后,由于板子上面我们BOOT1是拉低的,对照启动信息知道,此时由系统存储器启动,进入MCU内置bootloader,是给串口下载用的。因此进了bootloader打转去了,表现就是重启失败,实际上重启成功了,只是一直在系统存储器打转。
举报