作者:良知犹存
转载请注明作者来源
围观欢迎添加WX:Allen-Iverson-me-LYN
这几天用Keil uVision调试STM32时候,刚开始还是正常下载,后面修改调试之后,再继续下载程序,无论是Jlink还是stLink发现都无法下载程序。在Debug的Setings中SW Device也显示无法找到芯片。分析参考一些文章,可以判定有以下几种情况:
1.下载器驱动损坏
2.下载器损坏或者接线松动
3.MCU的下载口被错误配置
4.芯片被写保护了
下面是我遇到的情况:
程序第一次可以下载成功,可是再次下载程序便失败了,并且经过第一次下载进去的程序正常运行。我用一块开发板进行测试,最后发现是代码配置的问题,因为开发板对应外部的电路很齐全。经过测试我发现是程序经过调试修改,改变了SWDIO与SWCLK的下载口配置,导致程序下载进去后,下载口无法识别。
确定了问题,我们就着手进行纠正了。第一步修改代码,保证重新下载进去的代码后续可以正常运行,并保证MCU FLASH持续被烧写;第二步在当下错误IO配置,进行其他方法下载。
第一步:恢复下载引脚配置
错误代码,使用“=”导致 PA12 PA13引脚被进行设置为 0
解决方法:
修改程序为 GPIOA->MODER | =
第二步:利用RESET引脚进行复位下载
解决方法:
将RESET 引脚接地并同时下载程序即可解决此问题。
实际下载时候RESET引脚接地效果如下图所示:
下载成功