STM32 DAP 烧录报错-解决方案汇总
STM32 DAP 烧录报错(SWD/JTAG Communication Failure / Flash Download failed)解决方案汇总
针对遇到的 SWD/JTAG Communication Failure、Flash Download failed - Target DLL has been cancelled、Flash Download failed - "Cortex-M3" 这类 DAP 下载报错,我整理了全网所有主流的排查和解决方法。
一、最有效、90%能立刻解决
1. Keil Debug 设置改 Connect 为 under Reset
-
魔术棒 → Debug → Settings → Debug
-
Connect 选项:从 Normal 改为 under Reset
-
Reset 选:SYSRESETREQ / Autodetect
-
勾选 Reset after Connect
2. Flash Download 勾选 Erase Full Chip
-
Settings → Flash Download
-
勾选 Erase Full Chip(全片擦除)
-
勾选 Reset and Run
-
确认添加对应芯片的Flash算法
3. CubeMX 必须开 Serial Wire (SWD)
-
CubeMX → System Core → SYS → Debug
-
选择 Serial Wire
-
禁止选 No Debug(会直接锁SWD)
二、硬件与接线问题
-
SWD 4线必须接对
-
VCC、GND、SWDIO、SWCLK
-
必须共地,GND必接
-
-
降低 SWD 时钟
-
Max Clock 改为 1MHz / 500kHz
-
-
线短、分开、不干扰
-
杜邦线≤20cm,不要捆在一起
-
-
供电不稳
-
换后置USB、换线、单独供电
-
-
按住 BOOT0 再下载
-
上电/复位时按住BOOT0,点下载后松开
-
三、解决“芯片被锁/无法再次烧录”
-
程序把SWD引脚复用了 → 用BOOT启动模式刷空程序恢复
-
读保护开启 → 用ST-Link Utility/Keil执行Erase Chip解除
-
RESET引脚被配置成普通IO → 拉低RESET上电再连接下载器
四、Target DLL cancelled / Flash Download failed 专用方案
-
Utilities 勾选 Use Debug Driver
-
重装/更新 DAP 驱动(zadig装WinUSB)
-
以管理员身份运行Keil
-
删除工程配置文件(uvoptx)重建工程
-
更新DAP固件(DAPLink固件升级)
五、最简排查步骤(直接照做)
-
Connect → under Reset
-
Flash → Erase Full Chip
-
SWD时钟 → 1MHz
-
CubeMX → 开Serial Wire
-
接线检查 → 4线+共地
-
按住 BOOT0 下载
-
全片擦除 → 重新烧录
六、所有报错对应解决
-
SWD/JTAG Communication Failure
→ under Reset + 降时钟 + 接线/供电
-
Flash Download failed - Cortex-M3
→ Erase Full Chip + 正确Flash算法
-
Error: Target DLL has been cancelled
→ Use Debug Driver + 管理员权限 + 驱动/固件
-
RDDI-DAP Error
→ 线分开 + 降时钟 + 重新插拔
更多推荐
所有评论(0)