ST-link与J-link通俗易懂讲解

这问题是嵌入式开发的"基本功"。用最通俗的话讲清楚,让你彻底明白自己手里拿的是什么,以及为什么要这么接线。

第一部分:ST-Link和J-Link的区别与工作原理

1. 它们是什么?(翻译官 + 快递员)

你可以把 电脑(Simulink/Ozone) 想象成一个只会说中文的"大老板",把 STM32芯片 想象成一个只会说英文的"外国工人"。

  • ST-LinkJ-Link 都是 "翻译官+快递员" 。它们的任务是:
    1. 翻译:把电脑发出的调试指令("我要看这个变量的值")翻译成芯片能听懂的调试语言。
    2. 收发:通过几根电线,把翻译后的指令传给芯片,并把芯片的回复(变量的值)带回来。
2. 它们的工作原理(核心)

无论ST-Link还是J-Link,它们工作的底层逻辑完全一样,都遵循 ARM公司制定的CoreSight调试标准

  • 电脑端:通过USB口发送高级调试指令。
  • 调试器内部 :有个主控芯片(单片机),它把USB信号转换成SWD(串行调试)JTAG协议的电气信号。
  • 芯片端 :STM32内部有一个专门的调试硬件模块(DAP - 调试访问端口)。这个模块独立于你的主程序运行,专门监听SWD引脚上的命令。当调试器发来"暂停运行"的命令,DAP模块就会强行暂停CPU,然后把内存里的数据发给调试器。

一句话概括 :调试器就是个USB转SWD/JTAG的电平转换协议翻译器

3. 两者的核心区别
对比维度 ST-Link J-Link (SEGGER)
出身 意法半导体(ST)自家亲儿子 德国SEGGER公司出品,第三方巨头
适用芯片 只支持ST公司的STM8和STM32 通吃:几乎所有ARM内核芯片(以及RISC-V),包括Nordic、NXP、TI等
速度(性能) 速度较慢(通常4MHz左右),易受干扰 速度极快(支持50MHz),抗干扰能力强,下载大程序快几倍
黑科技 功能基础,就是调试和烧录 有强大的RTT(实时传输),可以像串口一样打印日志而不影响实时性;有J-Scope,可以像示波器一样看波形
配套软件 STM32CubeIDE、Keil自带驱动 Ozone(超好用的调试界面)、J-Flash、SystemView等全套专业工具
价格 几十块钱(板载甚至免费送) 正版几千到上万(高仿的几十块,但易掉固件)

给你的结论:ST-Link是"原厂附赠的螺丝刀",够用但简陋;J-Link是"专业电工的全能工具箱",强大且通用。你现在要学Ozone,就必须用J-Link,因为Ozone是SEGGER专门为自家J-Link写的最佳搭档。


第二部分:详细讲解每根线的作用 & 什么是SWD

1. 什么是SWD?(Serial Wire Debug,串行线调试)

在SWD出现之前,ARM芯片用的是JTAG 调试协议,需要 5根线(TMS、TCK、TDI、TDO、TRST),非常占用芯片宝贵的引脚。

SWD是ARM后来定义的简化版调试协议 ,它把JTAG的5根线压缩成了 2根功能线 + 1根参考线 + 1根电源线。现在的STM32单片机基本都只留SWD接口,因为省引脚。

2. 每根线的作用(对照你的J-Link排线)

J-Link的20针牛角排线上,我们只用到其中几根。针对你的STM32G431,这4根线必须接对

线名(J-Link针脚) 缩写 全称 极其详细的"白话语"解释
针脚 1 VTref 目标电压参考 这根是"眼睛" 。调试器不知道你的板子是3.3V还是5V供电。必须接上板子的3.3V ,调试器才能知道电压基准是多少,发出的高低电平信号才不会错。不接这根线,通信必定失败!
针脚 2 SWDIO 串行数据输入/输出 这根是"嘴" 。数据和命令都在这根线上双向传送。调试器问一句(发命令),芯片答一句(回数据),你来我往全靠它。
针脚 4 SWCLK 串行时钟 这根是"节拍器"。调试器通过这根线发出稳定的时钟脉冲(比如4MHz)。SWDIO上的数据要跟着这个时钟的节奏来读写。没有它,双方语速对不上,就是"鸡同鸭讲"。
针脚 6(或任何GND) GND 地线 这根是"基准地平线" 。所有的电压信号(3.3V、高电平、低电平)都是相对于这根地线的。必须接,且要牢靠。如果不接,信号就是飘在天上的,完全无效。
针脚 15(可选) RESET 硬件复位 这根是"重启键" 。当芯片跑飞、死机或者被加密锁住时,调试器可以拉低这根线强制芯片硬件复位。虽然可选,但强烈建议接,能避免90%的"连不上"问题。
3. 接线终极示意图(跟着我插)

对照你的J-Link调试器(如果是20针的牛角座):

  1. 找到J-Link上标号 1 的针脚(通常旁边有个小三角箭头或者红色标记)。
  2. 把杜邦线一头插在J-Link的 1号 ,另一头插在开发板的 3.3V 排针。
  3. 把杜邦线一头插在J-Link的 2号 ,另一头插在开发板的 SWDIO 排针。
  4. 把杜邦线一头插在J-Link的 4号 ,另一头插在开发板的 SWCLK 排针。
  5. 把杜邦线一头插在J-Link的 6号 (或其他GND),另一头插在开发板的 GND 排针。
  6. (强烈建议)把杜邦线一头插在J-Link的 15号 ,另一头插在开发板的 NRST 排针。

特别注意:你的NUCLEO-G431开发板左上角有个CN4排针,那里通常标明了SWDIO、SWCLK、3.3V和GND。千万不要插反!


你现在理解了每根线的物理含义,再回头看之前的报错 No probes connected via USB

这个错误完全不是 SWD接线的问题!它是在说:你的电脑USB端口根本没有检测到J-Link这个硬件设备

  • 就像你手机插了充电线但没反应一样,这不是手机屏幕坏没坏(SWD),而是充电头(电脑USB)有没有电、线(USB线)有没有断的问题。

针对"No probes connected"的最后排查清单

  1. J-Link上的绿灯亮了吗?(没亮说明没通电,换USB线或换电脑USB口)
  2. 如果插在电脑前置USB口,换到机箱后面主板原生的USB口(前置口电压可能不足)。
  3. 打开电脑的设备管理器,有没有看到一个带黄色感叹号的设备?如果有,说明驱动没装上,需要重新卸载安装J-Link驱动。
  4. 试一下把J-Link的USB线单独插拔一次,听电脑有没有"叮咚"的插拔提示音。如果没有声音,说明USB线坏了或接口坏了。
相关推荐
RAOY的AI笔记1 小时前
GPT-6打破孪生素数猜想最新纪录:AI正在进入数学研究新时代?
人工智能·gpt·算法
Nil2081 小时前
leetcode 994腐烂的橘子
算法·leetcode·职场和发展
闻缺陷则喜何志丹1 小时前
【动态规划】P10726 [GESP202406 八级] 空间跳跃|普及+
c++·算法·动态规划·洛谷
地平线智能驾驶开发者2 小时前
模型量化入门:从浮点模型到低比特表示
算法·量化·算法工具链
地平线开发者2 小时前
模型量化入门:从浮点模型到低比特表示
算法
枫叶林FYL2 小时前
【群体智能集群控制工程实践】第10章 无人舰队核心功能实现
大数据·人工智能·算法
不会就选b2 小时前
【无标题】
算法
m0_739312873 小时前
【自动驾驶和机器人控制】万向锁(Gimbal Lock)原理详解 + 和欧拉角 / 四元数 / SO(3)对比
算法·机器人·自动驾驶
Felven3 小时前
A. Eating Game
算法