在STM32主芯片方案下,PCB板回板调试早期,经常会遇到很奇怪的现象---STM32烧录一次后无法再次烧录,根据多年经验,汇总两个主要原因如下:
一、配置sys时没有配置Debug
在STM32CubeMX配置sys时没有配置Debug,这个时候就会出现烧录一次后无法再次烧录的现象,临时解决方案:使用镊子短接RST可以再次下载(拉高Boot0不推荐,因为得改元器件还得改回拉低);
按debug截图内容配置后重新下载后即可不需要RST复位就可以正常下载。
二、JTAG引脚被当做普通IO口使用
在代码中涉及到对 SWCLK 烧录方式的引脚操作时,即在程序中用到了PA13,PA14,PA15这几个引脚,将其用作普通IO时需要进行重映射,此时只能用:
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//失能JTAG,但使能SW
而不能使用 GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE),这段代码会使SW和JTAG均失能,在烧录程序后STlink烧录需要用到的引脚被设置为普通引脚,所以连接时肯定连接不上的!
例如在烧录程序时将A15引脚用作了普通IO,使得每次烧录完成后就无法再次连接,必须擦除芯片才行。
引用:STM32烧录一次后无法再次烧录_stm32烧录一次后便无法烧录-CSDN博客
引用:STlink烧录一次后就无法在进行烧录解决办法_stm32烧录一次后便无法烧录-CSDN博客