使用keil5向stm32烧录程序报错:No target connected
笔者在学习stm32时,先使用stm32CubeMX生成了一个项目,再使用keil5打开并编译,然后通过st-link向stm32f103c8t6烧录。结果keil5报错No target connected:

点击确定后继续报错Error: Flash Download failed Target DLL has been cancelled:

打开keil5的下图位置,发现无法识别到烧录器。
笔者百思不得其解,因为笔者从没出现过这种问题,怀疑是st-link坏了,换了一块stm32f407zgt6发现可以正常烧录。而不论是用dap还是st-link都无法烧录到stm32f103c8t6里。在keil5里面一通调试,还是不行。
经过笔者不懈的寻找,终于发现了解决方法:
1- 首先,断电,将stm32系统板上的boot0接1。也就是在图中红框位置,将跳线帽拔下,插到右边2个针脚上。

2- 在stm32CubeMX中的SYS中的debug,选择Serial Wire!!!并重新生成一个项目。

3- 使用keil5打开项目,此时发现可以识别到st-link。重新编译并烧录。

4- 断电! 然后重新将boot0的跳线帽恢复原状,即接到左边2个针脚。重新插入电脑,发现keil5已经可以正常烧录程序了!恭喜你,已经解决了!!!🎉🎉🎉 给笔者个赞吧,让笔者有点成就感。
由于笔者水平有限,对该问题的原理不能很好的说明。推测应该是在cubemx中设置的 SYS -> Debug 为 No Debug,CubeMX 会自动将 PA13 (SWDIO) 和 PA14 (SWCLK) 配置为普通 GPIO,从而彻底禁用了调试接口。
如果你还是没有解决,耐心再去找找其他方法吧!
更多推荐


所有评论(0)