首先STM32分为两种下载方式1.ISP(IN-SYSTEM-PROGRAMMING在线编程)  2.JTAG

这里简单谈谈对ISP下载的理解:

ISP下载是51单片机,STM等单片机比较常见的一种下载方式,需要MCU的支持,内部需要BOOT程序的支持,我们通过PC端的上位机将代码下载单片机外部FLASH中,然后调用BOOT程序(固化到ROM)将代码写到内部的Flash。


stm32有boot0,boot1两个管脚,控制三种启动方式


Boot0



Boot1



方式说明



0



x



正常启动:flash启动,程序运行



1



0



系统存储器,串口下载



1



1



SRAM启动,用于在SRAM中调试代码


这里主要用到1,2即串口下载,和正常运行

所以下载程序需要两步

1.串口下载

B0设置为1,然后按复位键。

2.程序运行

B0设置为0,然后复位键。


由于这样比较麻烦,所以板子设计者设计了一键下载模式

及在MCUISP软件中设置DTR低电平,RTS高低平即可一键下载【程序下载完后直接运行】

这样能够实现的原因是,DTR接的是开发板的的RST,RTS接的是开发板的B0 ,看上图。


这是基于PL2303的硬件设计的。

本人由于不明原因,导致通过此种方式无法下载,串口线插上后,电脑无法识别,测试VCC,电压只有4.7V,所以估计就是板子上的PL2303出问题了。

买了个CP2102模块,刚开始也向之前选择一键下载方式,最后始终是连接不上。现在通过上面的认识,意识到了这一问题,解决了这一问题。


现在有点疑问的是:我板子上的PL2303究竟是由于什么原因坏的。