问题详情

描述:在mdk中,点击load按钮提示找不到目标设备,无法下载程序

原因:单片机只有在停机状态下才可以下载程序,所以,连接不上是因为mcu无法停止

验证:在mdk中设置连接方式为:under reset,如下图:
解决ST-LINK无法连接设备(解决不了你顺着网线来打我)
点击确定,按下复位按钮,然后点击load,马上松开复位按钮,程序可以正常下载。为什么按复位按钮就可以下载呢?因为单片机停机了。

临时方案

每次下载按一下复位按钮,哈哈。

讲道理,这种方法确实可行,但是如果有仿真需求,又完蛋了,因为不知道什么时候st-link会再次访问mcu,所以就不知道什么时候按复位。。。点击仿真按钮之前按下复位按钮确实可以进,但是走两步仿真就会提示丢失设备。。。

如果用st-link只是为了下载程序,那不是大炮打蚊子嘛,下载程序用串口都可以。

解决方案

前提条件:单片机内没有程序,flash是空白的

单片机已经下载的有程序怎么办呢?答案是全片擦除,哈哈,用到的软件是flymcu,就是用串口下载程序那个,担心你没有用过,看下图:
解决ST-LINK无法连接设备(解决不了你顺着网线来打我)
清除芯片后的单片机再上电是什么状态呢?没错,是停机状态,不信你可以验证:在mdk里点击load,程序可以直接下载进单片机。如果你真的去验证了,恭喜你,需要再次清除芯片一次,哈哈。。。

解决方案

第一步:在你的程序里初始化swclk和swo引脚,编译
第二步:load进你的单片机

至此问题全部解决。

其实,问题的原因就是没有给引脚初始化成调试引脚,然后st-link通过调试引脚停止单片机时没有成功,然后程序就下载不进去

为什么swclk和swo可以停止单片机呢?这个,我也不知道。。。

HAL快速初始化引脚方法

如果你是用的HAL编程,初始化引脚方法如下图所示:
解决ST-LINK无法连接设备(解决不了你顺着网线来打我)
然后生成代码,编译,清除芯片,load就可以了。

相关文章:

  • 2022-12-23
  • 2021-08-10
  • 2021-12-11
  • 2021-08-10
  • 2021-04-06
  • 2021-06-26
  • 2021-05-17
  • 2022-01-19
猜你喜欢
  • 2022-12-23
  • 2021-04-11
  • 2021-07-10
  • 2021-08-18
  • 2022-12-23
  • 2021-06-20
  • 2021-06-12
相关资源
相似解决方案