当前位置: 首页 > news >正文

ST-Link 下载报错定位手册(含接线+设置)

前言

STM32 新手遇到的第一个崩溃时刻,往往来自这个对话框:

Error: No ST-Link detected! Error: Target not found! Error: Flash Download failed - Target DLL has been cancelled Flash Timeout. Reset the target and try it again

ST-Link 下载报错是每个人都会碰到的问题。这篇文章把常见报错按现象分类,配上排查步骤,按图索骥就能解决。

前提假设:你的 ST-Link 是正品或常见山寨版,电脑已经装了驱动(CubeIDE 自带)。


一、接线

在排查报错之前,先确认你的接线是对的。

标准 4 线接法:

ST-LinkSTM32F407 最小系统板
SWDIOSWDIO(或标 DIO)
SWCLKSWCLK(或标 CLK)
GNDGND
3.3V3.3V(可选。如果板子通过 USB 供电,可不接)

重要提示:

  • 不要接反 SWDIO 和 SWCLK——这是最常见的低级错误

  • 部分 ST-Link 的 3.3V 输出能力很弱(几十 mA),如果接了会掉电压,建议板子单独供电

  • 线不要太长,< 20cm,太长 SWD 信号会畸变


二、报错速查表

错误 1:No ST-Link detected

Error: No ST-Link detected!

原因:ST-Link 没被电脑识别。

排查步骤:

  1. 把 ST-Link 拔了重新插

  2. 打开设备管理器→ 看"通用串行总线设备"或"调试器"下面有没有黄色感叹号

  3. 有感叹号 → 重装 ST-Link 驱动(CubeIDE 安装目录下有驱动包)

  4. 换个 USB 口试试(台式机插机箱后面的 USB 2.0 口)

  5. 换根 USB 数据线(有些线只能充电不能传数据)

错误 2:Target not found / No target connected

Error: Target not found!

原因:ST-Link 连上了电脑,但没连上 STM32 芯片。

排查步骤(按可能性排序):

步骤操作
检查 SWDIO/SWCLK 有没有接反——这是最容易犯的错
板子通电了吗?摸芯片看有没有温度,量 VCC 引脚有没有 3.3V
按住复位键不松手 → 点下载 → 听到"叮"后松开复位
BOOT0 设为 1(拉高),BOOT1 设 0,重新上电再试
SWD 线太长或接触不良,杜邦线重新插紧

如何确认 ST-Link 到芯片的 SWD 线是通的?用万用表二极管档量:

红笔接 STM32 的 SWDIO → 黑笔接 ST-Link 的 SWDIO → 导通(< 5Ω) 红笔接 STM32 的 GND → 黑笔接 ST-Link 的 GND → 导通

错误 3:Flash Download failed

Error: Flash Download failed - Target DLL has been cancelled

原因:下载过程中出错中断。

排查步骤:

  1. 复位芯片后重试(CubeIDE 的 Run → Debug Configurations → Debugger 标签,勾选Reset after connect

  2. CubeMX 重新生成工程(确保 Debug 选了 Serial Wire)

  3. 降到更低速度:

    • CubeIDE → Run → Debug Configurations → Debugger

    • ST-Link Serial Wire Speed:从 4MHz 降到1.8MHz1MHz

  4. 芯片 Flash 被锁了?看错误 4

错误 4:Flash Timeout / Flash Protect

Error: Flash Timeout. Reset the target and try it again Internal command error

原因:芯片 Flash 被读保护(RDP Level 1)或选项字节出错。

常见触发场景:

  • 用 FlyMCU 或其它工具操作了选项字节

  • 擦除了 STM32 的选项字节区域

  • 芯片从别人板子上拆的,出厂可能有保护

解决——全片擦除:

用 STM32CubeProgrammer(免费的官方工具):

  1. 打开 STM32CubeProgrammer

  2. 连接方式选ST-LINK

  3. Connect

  4. OB(Option Bytes)标签中:

    • Read Protection(RDP):设成AA(Level 0,无保护)

    • Apply

  5. 然后回到Erasing & Programming→ 点Full Chip Erase

  6. 回到 CubeIDE 重新下载

如果没有 CubeProgrammer,把BOOT0 = 1(拉高)、BOOT1 = 0,然后用串口 ISP 方式全片擦除(FlyMCU 工具,选择"擦除芯片")。

错误 5:Can not connect to target (SWD)

ST-LINK error (DEV_TARGET_HELD_UNDER_RESET)

原因:芯片一直处于复位状态。常见于板子 RST 引脚被外部拉低、或者电容对地短路。

排查:

  1. 量 RST 引脚电压——正常是 3.3V 左右

  2. 如果是 0V,查复位电路,或者断开 RST 外部连接

  3. 有些最小系统板的复位电容(104)太大了,换一个 100nF 的

错误 6:ST-Link USB communication error

ST-LINK USB communication error

原因:ST-Link 固件版本不匹配或固件损坏。

解决:

  1. 升级 ST-Link 固件:STM32CubeProgrammer → ST-LINK →Firmware Upgrade

  2. 如果升级失败,可能是山寨 ST-Link 不支持升级——换一个 ST-Link


三、CubeIDE 中的 Debug 配置检查

有时候不是硬件问题,是设置问题:

项目 → Run As → Debug Configurations → Debugger 标签:

设置项建议值
Debug ProbeST-LINK(ST-LINK GDB Server;OpenOCD 为备选)
InterfaceSWD(不是 JTAG)
Serial Wire Speed1800kHz(降速可以解决很多诡异问题)
Reset ModeConnect under reset

"Connect under reset" 选项解决了很多"特定芯片第一次连不上"的问题——下载器在芯片复位瞬间抢占 SWD 总线。


四、进阶排查工具

用 STM32CubeProgrammer 检测连接

ST-Link 好不好使,CubeProgrammer 试一下最直接。

  1. 打开 CubeProgrammer

  2. ST-LINKConnect

  3. 如果连上了,会显示芯片型号、Flash 大小、UID

Successfully connected to the target! Device: STM32F407VG Flash size: 1 MB

连不上会直接报错,比 CubeIDE 的错误信息更清楚。


五、特殊情况

5.1 烧录一次后第二次就下不进去了

100% 的原因:CubeMX 生成工程时SYS → Debug 没有选 Serial Wire。 选了 No Debug 会导致 SWD 引脚被重配为 GPIO;选 JTAG 时 PA13/PA14 仍保持调试功能,SWD 功能就断了。

解决:

  • 按住复位键 → 点下载 → 松复位(经典的三秒抢救法)

  • 如果不行,BOOT0=1、BOOT1=0,串口 ISP 擦除,重新生成带 Serial Wire 的代码

5.2 山寨 ST-Link V2 的问题

市场上十几块的 ST-Link 很多是山寨版(正品 ST-Link/V2-ISOL 要一百多),常见问题:

问题解决
连上就断开接触不良,换个 USB 口或线
只能 1MHz 以下连接正常,山寨版高频不稳,降速就行
固件升级失败不支持升级,直接用不要升
指示灯不亮坏了,换个。十多块钱不值得修

5.3 芯片锁死了怎么办

BOOT0 拉高 → BOOT1 拉低 → 上电 → 芯片从系统存储器(System Memory)启动 → 用串口 ISP(FlyMCU)连上 → 读出选项字节 → 设 RDP = AA → 全片擦除 → BOOT0 拉回低 → 重新下载。


六、快速排查流程图

ST-Link 下载报错 │ ├→ 电脑能识别 ST-Link 吗? │ ├→ 否 → 重装驱动 / 换 USB 口 / 换线 / 换 ST-Link │ └→ 是 → ↓ │ ├→ 芯片能连上吗? │ ├→ 否 → 查 SWD 接线 / 板上电了吗 / 按住复位下载 / 降速 │ │ └→ 还不行 → BOOT0=1 用串口擦除 │ └→ 是 → ↓ │ ├→ 下载过程中报错? │ ├→ 是 → 降速率 / 勾选 "Reset after connect" / 全片擦除 │ └→ 是 + "Flash Protect" → 关读保护(RDP) │ └→ 一次成功!(然后第二次就下不进去了) └→ 记住:SYS → Debug → Serial Wire

七、一句话总结

先查接线和供电,按住复位来下载,降速到 1MHz,最后 ISP 全片擦。

搞定这四步,95% 的 ST-Link 报错都能解决。

http://www.jsqmd.com/news/1163763/

相关文章:

  • 2026年7月最新天津雅典官方售后维修服务网点地址与客服电话 - 亨得利官方服务中心
  • Claude Code 运维实战:用 AI Skill 打造自动化运维新范式
  • 托运摩托车,到底要不要打木架? - 快递物流资讯
  • 2026免费图片文字识别工具全解:在线网页、电脑软件、小程序实操指南
  • C#企业级高并发数据采集平台:工控现场复杂环境适配实战
  • 孤能子视角:三十六计之擒贼擒王——拓扑结构重构
  • 如何用OneMore插件实现OneNote效率革命:160+命令的完整指南
  • 寒地专网筑根基,全域服务践初心——黑龙江单工科技赋能东三省内蒙应急与行业通信升级纪实 - 无线电评测大师
  • 酸度梯度控制的原理---(技术突破及工艺应用)
  • 基于改进YOLOV11与Fasternet-BiFPN的工厂碳纤维缺陷识别研究
  • UVa 483 Word Scramble
  • 掌握Java虚拟机内存管理与GC调优
  • 混凝土用膨胀型锚栓
  • 高压快充普及重构用车生态:补能格局洗牌,重新定义新能源车产品力
  • 技术架构:技术选型和基础设施
  • 零成本开启企业碳足迹管理:openLCA开源生命周期评估工具完全指南
  • 使用 TiUP 工具升级 TiDB 集群到 v7.5 的具体步骤是什么?
  • esp32开发与应用(3.5寸触摸屏+lvgl)
  • 雷军从造年轻人车转向中年市场,小米澎程能在增程式SUV赛道再赢一次吗?
  • 2026年房地产动画行业观察
  • 多智能体不是堆 AI——跟着一个“AI 编辑部“看协作怎么跑通
  • 智能路由分发_acp-router
  • AI 赋能传统报表系统:自然语言查询到 SQL 生成的工程化管道
  • 摄像头 ISP 中典型 Image Signal Processing Pipeline
  • 影刀RPA Python读写配置文件:INI与YAML管理参数告别硬编码
  • 达梦数据库-堆栈看问题-02-flst_remove
  • 2001-2025年上市公司关键数字技术专利面板数据
  • Python 线程池的应用与局限
  • 整厂服务器生产线一站式规划8年跑厂实测避坑指南
  • 深度解析机器人关节位置环控制:从理论到实践