3、探针驱动安装:J-Link / ST-Link / DAP-Link 实战

驱动安装这事儿,说难不难,说简单吧,我见过不少工程师在这上面卡一整天。其实大部分问题就三个:装错了版本、被系统拦截、或者线没插好。咱们一个一个来捋。

3.1 三大主流探针的驱动安装

先看个总览表,心里有个底:

探针类型 厂商 驱动包名 典型版本 支持IDE
J-Link SEGGER J-Link Software Pack V7.94+ Keil / IAR / Ozone
ST-Link STMicroelectronics ST-Link Utility / CubeProgrammer V3.9+ STM32CubeIDE / Keil
DAP-Link ARM / 开源社区 CMSIS-DAP 驱动(系统自带) 固件版本 V2.x Keil / pyOCD / OpenOCD

3.1.1 J-Link 驱动安装

我个人习惯直接从 SEGGER 官网下载 J-Link Software and Documentation Pack。别去第三方网站下,版本乱、还可能带毒。

安装步骤很简单:

  1. 运行安装包,一路 Next。
  2. 安装路径不要有中文,我吃过这个亏。
  3. 安装完成后,插上 J-Link,系统会自动识别。
  4. 打开设备管理器,看到 J-Link driver 就对了。
小技巧: 安装完后,打开命令行输入 JLinkExe,如果能进入 SEGGER 命令行界面,说明驱动和 DLL 都正常。

3.1.2 ST-Link 驱动安装

ST-Link 分两种:板载的(比如 Nucleo 板上的)和独立的。驱动通常集成在 STM32CubeProgrammer 或 ST-Link Utility 里。

我建议直接装 CubeProgrammer,因为它自带最新驱动,还能烧录、调试一把梭。

  1. 下载并安装 STM32CubeProgrammer。
  2. 插上 ST-Link,设备管理器里应该出现 STMicroelectronics STLink dongle。
  3. 如果出现黄色感叹号,右键更新驱动,手动指向安装目录下的 Drivers 文件夹。
注意: ST-Link 的 USB 线质量很关键。我曾经用一根劣质延长线,导致驱动反复掉线,换了原装线立马解决。别在这种地方省钱。

3.1.3 DAP-Link 驱动安装

DAP-Link 走的是 CMSIS-DAP 协议,Windows 10/11 基本免驱。插上就能识别为 CMSIS-DAP 或 ARM CMSIS-DAP。

如果系统没自动装上,可以手动安装:

  1. 打开设备管理器,找到未知设备。
  2. 右键更新驱动,选择 从计算机查找。
  3. 路径指向 Keil 安装目录下的 ARM\BIN 文件夹。

嗯,这里要注意:DAP-Link 的固件版本很重要。V1 版只支持 SWD,V2 版才支持高速模式和串口。买的时候问清楚。

3.2 驱动验证:别急着点“下载”

装完驱动,我建议先做三件事验证,免得后面调试时抓瞎。

3.2.1 设备管理器确认

打开设备管理器,展开 通用串行总线设备 或 调试器 分类:

  • J-Link:显示为 J-Link 或 SEGGER J-Link
  • ST-Link:显示为 STLink dongle 或 ST-Link/V2-1
  • DAP-Link:显示为 CMSIS-DAP 或 ARM CMSIS-DAP

没有黄色感叹号,才算第一步通过。

3.2.2 探针自带工具检测

每个探针都有官方检测工具:

探针 检测工具 检测命令
J-Link JLinkConfig.exe 打开后显示序列号和固件版本
ST-Link STM32CubeProgrammer 连接后显示目标芯片信息
DAP-Link pyOCD pyocd list 列出设备
我的习惯: 每次换新探针,我都会先用官方工具读一下序列号和固件版本。这能排除“探针本身坏了”的可能性,省得后面怀疑人生。

3.2.3 连接目标板测试

最后一步,连上目标板,在 IDE 里尝试连接。Keil 里点 Debug → Start/Stop Debug Session,如果能进入调试界面,驱动就彻底没问题了。

3.3 常见驱动问题排查

这部分是我踩坑最多的。我整理了几个高频问题,你遇到直接对号入座。

3.3.1 设备管理器显示“未知设备”

原因: 驱动没装上,或者 USB 枚举失败。

解决:

  • 换一个 USB 口,尽量插在主板直出的口上,别用前置面板。
  • 手动更新驱动,指向正确的驱动目录。
  • 如果还不行,重启电脑再试。别笑,Windows 的 USB 栈有时候就是抽风。

3.3.2 驱动装上了,但 IDE 找不到探针

原因: 通常是版本不匹配。比如 Keil 太老,不认识新版的 J-Link 驱动。

解决:

  • 升级 IDE 到最新版。
  • 或者降级探针驱动。我记得有一次项目紧急,我硬是把 J-Link 驱动从 V7.94 降到了 V6.80 才兼容客户的 Keil MDK 4。
避坑指南: 我曾经在调试 STM32F103 时,ST-Link 驱动死活连不上。折腾了两小时,最后发现是目标板供电不足。探针需要从目标板取电,如果目标板没上电或者电压不够,驱动再对也没用。先量一下 VCC 和 GND。

3.3.3 驱动冲突:多个探针同时插

如果你同时插了 J-Link 和 ST-Link,Windows 可能会把驱动搞混。表现为:插上 J-Link 却识别成 ST-Link。

解决:

  • 只插一个探针,另一个拔掉。
  • 在设备管理器里卸载错误的驱动,重新插拔。
  • 用 USBDeview 这类工具清理 USB 记录。

3.3.4 权限问题:Linux 下无法访问

Linux 用户注意,默认情况下普通用户没有权限访问 USB 设备。需要添加 udev 规则。

# 以 J-Link 为例
sudo wget -O /etc/udev/rules.d/99-jlink.rules https://www.segger.com/downloads/jlink/99-jlink.rules
sudo udevadm control --reload-rules
sudo udevadm trigger

ST-Link 和 DAP-Link 也有类似的规则文件,去各自官网找一下。

3.4 知识体系总览

下面这张图把驱动安装、验证、排查的流程串起来了,建议保存下来当 checklist。

探针驱动安装与排查流程 探针驱动安装与排查流程 J-Link ST-Link DAP-Link ① 下载官方驱动包 ② 安装(路径无中文) ③ 插上探针 ① 安装 CubeProgrammer ② 驱动集成在安装包内 ③ 插上 ST-Link ① 系统免驱(Win10+) ② 或手动指向 Keil 目录 ③ 插上 DAP-Link 驱动验证三步走 1. 设备管理器确认 2. 官方工具检测 3. IDE 连接测试 ✅ 正常 开始调试 ❌ 异常 排查:USB口/供电/版本/冲突 💡 排查优先级:USB口 → 供电 → 驱动版本 → 驱动冲突 → 探针硬件

3.5 我的个人经验总结

做了这么多年调试,我总结了一条铁律:驱动问题,90% 出在 USB 和供电上。别一上来就重装系统、重装 IDE,先做三件事:

  1. 换 USB 口,最好插在电脑背面。
  2. 量电压,目标板 VCC 和 GND 之间至少 3.3V。
  3. 看灯,探针上的指示灯亮了没?

这三步能解决大部分问题。剩下的,再去看驱动版本和冲突。

最后说一句: 驱动安装不是技术活,是细心活。按流程走,别跳步,基本不会出问题。如果真遇到疑难杂症,去探针厂商的论坛搜一下,大概率有人遇到过。