# 问题描述:

  • IDE: Keil5
  • 仿真器:ST-LINK/V2 (使用 SWJ 调试)
  • 出现问题:烧录程序时,出现 No target connected 的提示,具体如下图所示:

imgimg

# 情况:SWJ 功能在代码中被关闭了

这种情况的特点往往是:之前烧录都好好的,某次烧录后突然就不行。并且当你一直按着开发板的 reset 键时,你会发现又能识别设备了(根据这个现象,网上有给出先按住 reset 键,在点烧录按钮后立刻松开 reset 的笨办法,这个方法看手速和人品,有概率解决)。img

出现这种情况的原因是,你烧录的代码里把芯片的 SWJ 调试功能给屏蔽了。这部分的代码在 stm32f1xx_hal_msp.c 这个文件的 **HAL_MspInit () 函数里,
如图:正是
__HAL_AFIO_REMAP_SWJ_DISABLE ()** 这个函数把 SWJ 调试功能屏蔽了,所以你连接 swj 没反应。
img

解决办法是:把这句代码删了,编译后用上面的笨办法烧录进去,以后只点烧录按钮即可!(如果是 JTAG 调试,道理类似)