今天在给STM32下程序的时候,报了这个错误,然后在网上搜了半天,找到了一个原因和解决办法,网上说的说法如下:
原因:
烧录的程序关闭了JTAG功能,复用了JTAG的接口,导致JTAG不能正常使用。
解决方法一:
找到BOOT1和BOOT0,把BOOT1拉低,BOOT0拉高至3.3V,用串口下载一个程序,此程序没有关闭JTAG即可,然后就可以正常重新使用JTAG,再将Boot0和Boot1都置低。
解决方法二:
擦除芯片代码也能恢复JTAG口功能,从开始--SEGGER--JLink ARM--打开J-flash AR(找到安装的J-Link驱动程序,本人用的是SEGGER公司的Jlink连接器,安装的是V4.12驱动程序)-确定--再选Target选项--connect--然后再选Eraser chip即可
上面说的很有道理,不过上面的方法我并没有尝试过,我直接从官网上找到了解决方案,官网解释如下:
前面找到的说是JTAG引脚被程序占用只能算是“debug interface is notworking”而已,前面的解决方案是串口下载程序,比较的麻烦,官网上的解决方案:SWD下载,见下图。
这里还有一点需要说明,在选择了SW模式后,SW Device应该是有设备被识别到的,否则的话说明下载器和STM32的链接是有问题的。
时间: 2024-10-12 08:54:15