现象:
1.SWD或者JTAG无法连接
2.FLASH ARM烧录出现以下错误
- Erasing affected sectors ...
- ERROR: RAM check failed @ address 0x20000000.
- ERROR: Write: 0x03020100 07060504
- ERROR: Read: 0x00000000 00000000
- ERROR: (0 bytes of RAM have been checked successfully)
- ERROR: Failed to erase sectors
- ERROR: Failed to auto program target
有多种方法,我只记录我这边最便捷,适用性最广的一个吧。
电路板断电一段时间(最好10s以上,时间短了,也不成功),再上电,并使BOOT0在上电同时接3.3V高电平,此时可直接烧录。
(注意一定要连接好,不然肯定也是烧录不了的。)
多次测试,断电一段时间后,再上电,BOOT0接高电平后,软件擦除,再断开BOOT0高电平,即可正常烧录程序(BOOT1=x BOOT0=0)。
STM32芯片上有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,
BOOT1=X BOOT0=0 从用户闪存(flash)启动,这时正常模式 较多情况下使用这种模式
BOOT1=1 BOOT0=1 从内置SRAM(内存)启动,这种模式可以用于调试
BOOT1=0 BOOT0=1 从系统存储器启动, 这种可以用于调试
(注:0-低电平 1-高电平 X-任意高低电平)