问题描述:

  • 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调试,道理类似)