SWD/JTAG Communication Failure/No target connected/STM32把SWD关掉后重新烧录程序

本文是针对STM32的芯片,其他Arm核芯片可以参考。
不考虑下载器的连接有问题、芯片有问题等硬件情况。仅考虑软件问题——
这是由于上一次烧录的程序中把stm32的SWD和JTAG功能都关掉了

这种情况的特点往往是:之前烧录都好好的,某次烧录后突然就不行。并且当你一直按着开发板的reset键时,你会发现又能识别设备了。
在这里插入图片描述
首先确保用于SWD的PA13、PA14(往往是这两个引脚)没有被用去作为其他功能。此时,在你的代码中(如果是用HAL库)多半是有__HAL_AFIO_REMAP_SWJ_DISABLE();这个代码,这个宏定义将SWD和JTAG禁止了。正确的代码应该是__HAL_AFIO_REMAP_SWJ_NOJTAG();,这个代码仅禁止JTAG,不禁止SWD。在这里插入图片描述
解决方法一
1、按住复位不松开,点击下载程序。
2、马上 松开复位(要在报错之前) ,即可成功下载。
3、重要:为了保证稳定性,尽量使用有线的下载器。并且,在实践过程中发现,使用ST-Link成功的概率最大。CMSIS-DAP、Jlink等都是一按下载按钮就会报错,来不及重新下载。

解决方法二
(不管你已经烧录了的程序有没有打开串口)换用ISP工具下载,就是用串口下载的那个。没有ISP的一键下载电路的板子不要忘了换BOOT的电平喔~

注:这里点下载到松开复位键不是每一次都能成功,每次点了下载键到松开复位键的时间每次都不同,在某一个点时,就可以下载程序了。板子就恢复正常了。但需要注意的是,在程序里一定要避开对SWD的引脚的配置。

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值