首先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究竟是由于什么原因坏的。