STM32F103RCT6禁用JTAG引脚后调试无响应问题求助
STM32F103RCT6禁用JTAG后调试无响应的解决方案
问题根源
你设置SWJ_CFG[2:0] = 100会完全禁用SWD和JTAG所有调试接口,导致调试器无法与芯片建立通信,因此出现"Target is not responding"的提示。
恢复调试连接的方法
当前芯片因调试接口被禁用无法连接,可通过系统存储器启动模式恢复:
- 断电,将BOOT0引脚接VDD,BOOT1引脚接GND
- 上电,芯片进入内置系统存储器启动模式
- 使用STM32CubeProgrammer通过SWD或UART连接芯片,擦除原有程序或烧录修正后的代码
- 断电,将BOOT0引脚接回GND,重新上电即可正常调试
两种引脚使用方案
根据你的需求,提供两种可行配置:
方案1:保留SWD调试,释放PA15、PB3、PB4
如果可以保留PA13(SWDIO)、PA14(SWCLK)作为调试引脚,仅释放PA15、PB3、PB4作为普通GPIO,配置SWJ_CFG[2:0] = 001(禁用JTAG,保留SWD):
// 先清零SWJ_CFG三位,再设置为001 AFIO->MAPR &= ~(0x7 << 23); AFIO->MAPR |= (0x1 << 23);
此配置下,PA15、PB3、PB4可正常作为GPIO使用,同时调试功能不受影响。
方案2:完全释放所有JTAG/SWD引脚(牺牲调试功能)
如果必须使用PA13、PA14、PA15、PB3、PB4全部引脚,只能设置SWJ_CFG[2:0] = 100,但需注意:
- 调试阶段不要添加这段配置,先完成功能调试
- 确认功能正常后,加入该配置,通过系统存储器启动模式或串口烧录最终程序
- 烧录完成后,芯片无法再通过SWD/JTAG调试,只能通过串口等方式进行后续更新
内容的提问来源于stack exchange,提问作者Pbs
相关产品推荐
相关产品推荐

