swd/jtag communication failure解决方法

当STM32的SWD和JTAG端口因TIM2重映射而被禁用时,会导致无法进行程序烧写。解决方法包括在启动时钟后设置AFIO_MAPR寄存器,然后通过保持复位状态进行程序下载。在释放复位后,可以重新下载程序。此方法允许在禁用调试端口后恢复烧写功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32 JTAG/SWD禁用导致无法烧写

 

由于STM32的引脚功能较多,在为了方便硬件的使用,常会使用复用,重映射的功能,这里主要提及的是SWD和JTAG端口的引脚对应出现的问题。为了使得TIM2能够重映射到PA15和PB3,所以得对TIM2进行重映射,但是这样是不够的,因为下载调试端口SWD默认就占用了该引脚,所以重映射无效,因此必须先启动时钟

  RCC->APB2ENR|=1<<0;

然后令:

AFIO->MAPR = AFIO_MAPR_SWJ_CFG_1;或者AFIO->MAPR = AFIO_MAPR_SWJ_CFG_2;

但是又有一个新闻问题来了,如果你设置为第二种,那么就意味着你不但关闭了JTAG还关闭了SWD,这样一来,如果你使用该方式来烧写程序,那么你下一次将面临这无法烧写程序的后果,下面就介绍解决问题的办法:

  1、按着板子上面的复位键不放,若没有按键,就用夹子短路复位电容,这样单片机将停止程序的运行;

  2.这时候点击Keil的下载,下方的“Build Output”窗口便会开始滚动,一会之后会提示出错。直接关闭它,放开复位键。

  3.这时候单片机已经停止程序了,SWD那些端口已经恢复原有的调试端口功能,这时候你再一次按下载键便可以下载程序了,问题解决!!!

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值