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)


二、硬件与接线问题

  1. SWD 4线必须接对

    • VCC、GND、SWDIO、SWCLK

    • 必须共地,GND必接

  2. 降低 SWD 时钟

    • Max Clock 改为 1MHz / 500kHz

  3. 线短、分开、不干扰

    • 杜邦线≤20cm,不要捆在一起

  4. 供电不稳

    • 换后置USB、换线、单独供电

  5. 按住 BOOT0 再下载

    • 上电/复位时按住BOOT0,点下载后松开


三、解决“芯片被锁/无法再次烧录”

  1. 程序把SWD引脚复用了​ → 用BOOT启动模式刷空程序恢复

  2. 读保护开启​ → 用ST-Link Utility/Keil执行Erase Chip解除

  3. RESET引脚被配置成普通IO​ → 拉低RESET上电再连接下载器


四、Target DLL cancelled / Flash Download failed 专用方案

  1. Utilities 勾选 Use Debug Driver

  2. 重装/更新 DAP 驱动(zadig装WinUSB)

  3. 以管理员身份运行Keil

  4. 删除工程配置文件(uvoptx)重建工程

  5. 更新DAP固件(DAPLink固件升级)


五、最简排查步骤(直接照做)

  1. Connect → under Reset

  2. Flash → Erase Full Chip

  3. SWD时钟 → 1MHz

  4. CubeMX → 开Serial Wire

  5. 接线检查 → 4线+共地

  6. 按住 BOOT0​ 下载

  7. 全片擦除 → 重新烧录


六、所有报错对应解决

  • 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

    → 线分开 + 降时钟 + 重新插拔

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐