嵌入式技术论坛
直播中

ss

6年用户 8762经验值
擅长:电源/新能源 制造/封装 RF/无线
私信 关注
[经验]

浅析stm32单片机无法烧写程序的原因及其解决办法

STM32单片机烧写程序时,有时候会出现无法烧写下载程序的问题。keil报错为 “No Cortex-M sw Device Found” 和 “Error: Flash Download failed - Target DLL has been cancelled”,如下图(MDK5平台):


经过查找分析,确定下载器正常,MDK的下载配置也正常。那么,还有可能的故障原因是:SWD的下载口在程序中被禁用,使得引脚SWDIO和SWCLK被设置为普通I/O口,单片机被锁定,不能再次下载程序。
出现这种故障 可以通过短路复位电容来解锁。
操作方法为:
1.短路复位电容,点下载,弹出如下界面(MDK5平台):

2.点击“No”。
3.稍等几秒(这个靠感觉喽),断开短路电容,OK!大功告成!
这么操作原因是,stm32单片机复位时,JTAG的寄存器是复位状态,SWDIO和SWCLK引脚用作JTAG烧录功能,就是借助从单片机复位到flash程序运行的这个空档期,把flash里的SWDIO和SWCLK引脚设置为普通I/O的程序冲刷掉。

更多回帖

发帖
×
20
完善资料,
赚取积分