跳到主要内容

No Device Found 找不到设备

芯片的SWD接口被关闭


解决方法:

  • 1、配置一下工程

    将 SYS -> Debug 设为 Serial Wire,然后保存并重新生成代码

配置工程
  • 2、将 BOOT0 跳线帽改到 H
H
  • 3、按一下复位键
RST
  • 4、现在就能下载程序了~
烧录
  • 5、将跳线帽换回 L,按复位键,程序就开始跑啦~

  • 6、避免下次再出现,后面再新建的工程,都按步骤1配置一下


为什么会出现这个问题?

  • 当没有配置 Debug 接口为 Serial Wire 时,HAL库会认为不需要下载接口

  • 因此在生成初始化代码时,可能出现这一行:

__HAL_AFIO_REMAP_SWJ_DISABLE(); // 关闭SWD、JTAG接口
  • 这行代码关闭了芯片的 SWD 接口,导致下载失败

为什么以前没有出现这个问题?

  • 这行代码是跟着 串口、I²C 等初始化代码一起生成的

  • 以前的工程可能没有用到,所以并没有生成这行代码

  • 而当用到例如 串口、I²C 等功能时,HAL库需要初始化 AFIO 时,就会生成这行代码

怎么避免这个问题?

  • 在每次新建工程后,就配置好 Debug 接口为 Serial Wire