Jetson Orin Nano(9.2): ch340串口通信问题汇总

问题1.

为了方便连接,我把stm32插在了PCB转接板上。PCB转接板上留出了串口通信端子。

在测试CH340通过PCB板给STM32供电并进行串口通信时,

CH340模块通过USB连接电脑,另一端连接到STM32。

预期:STM32正常亮灯并且OLED屏幕正常显示。

但是遇到如下的奇怪问题:

当STM32不连接ST-LINK时,STM32的灯不亮;

当连接ST-LINK时,即使ST-LINK不插电,灯也亮了。为什么?

原因分析

这是一个很典型的硬件供电问题。核心原因在于:你的电路板没有从CH340得到稳定的供电,但ST-LINK却通过其信号引脚(如SWDIO)向电路板反向提供了电压,导致部分电路意外得电。

  1. 电路板主供电(来自CH340)可能中断

STM32的灯不亮,最直接的原因就是5V电源没有成功送到板子上

  • CH340模块本身可能并没有输出5V :你可以用万用表测量一下CH340模块上 VCC 引脚与 GND 之间的电压。如果是0V,说明CH340没有向外供电。

  • CH340与电路板之间的5V连线可能存在虚接或断开 :检查一下连接 CH340 VCCPCB 5V 的线是否牢固。

  1. ST-LINK正在"倒灌"供电

当ST-LINK通过排线连接到你的PCB时,即使没有外接电源,它也可能通过信号线(如SWDIO或SWCLK)的高电平状态 ,向STM32的IO口保护二极管注入少量电流。这个电流虽然微弱,但足以点亮板上功耗很低的LED指示灯,造成"设备已启动"的假象。这种现象被称为漏电或倒灌

ST-LINK内部的上拉电阻或它之前被其他设备供电后的残余电压,都可能导致这种情况。


解决方案

建议按以下顺序排查和解决:

第一步:验证CH340的供电能力

  1. 断开ST-LINK,确保电路板上只连接了CH340模块。

  2. 用万用表测量CH340模块上的 VCCGND 之间的电压。应为稳定的 5V

  3. 测量PCB上STM32的 5VGND 引脚之间的电压。如果为0V,说明CH340到PCB之间的5V线路中断。

第二步:检查共地与接线

确保CH340的 GND 与PCB的 GND 已用导线直接相连。如果没有可靠的共地,即使有电压,电流也无法形成回路,电路无法工作。

第三步:预防"倒灌"(推荐操作)

为了防止ST-LINK在不供电时干扰电路或损坏器件,建议采取以下措施:

  • 养成好习惯 :在对电路板进行调试或供电操作时,优先连接主电源(如CH340的USB线),确认LED亮起后,再连接ST-LINK进行程序下载或调试。拔掉ST-LINK时,也应先断开调试器,再断开主电源。

  • 切断倒灌路径(硬件修改) :如果你经常需要在不供电时连接ST-LINK,可以在PCB设计或连线中,在ST-LINK的 SWDIOVCC 引脚上串联一个低压降的肖特基二极管(如1N5819),利用其单向导电性,阻止电流从ST-LINK流向STM32。这是比较稳妥的硬件解决方案。

第四步:检查STM32板上的供电跳线

如果你使用的是标准的Blue Pill开发板,检查板上的供电跳线(LDO选择) 是否设置正确。通常有一个跳线帽用于选择系统电源是从 5V 引脚输入还是从 USB 接口输入。要使用外部5V供电,请确保跳线帽连接的是 5VLDO


结果验证

测试状态 CH340连接 ST-LINK连接 观察结果 结论判断
正常 ✅ 连接且USB上电 ❌ 断开 STM32 LED点亮 ✅ CH340供电正常,ST-LINK无关
异常 ✅ 连接但USB未上电 ✅ 连接 STM32 LED点亮 ⚠️ 存在倒灌现象,需纠正
异常 ✅ 连接且USB上电 ❌ 断开 STM32 LED不亮 🔧 CH340供电线路故障

最后,如果你能用万用表测量一下CH340模块上 VCCGND 的电压,以及PCB上 5VGND 的电压,这样就能更快锁定问题所在。

问题2.

STM32是否与PCB板共地?如果两者没有共地,会不会出现上述现象?

是的,如果没有共地,100%会出现你说的这种现象:CH340供电时STM32不工作,但一插上ST-LINK,灯反而亮了。 这背后的核心原因很简单:没有共地,电路就没有形成完整的电流回路。


如何判断是否共地?

判断方法非常简单,最可靠的就是用万用表测量电阻或通断。

  • 方法一:电阻档测量

    将万用表调到 电阻档(Ω)通断档(带蜂鸣器符号) 。一支表笔点住 CH340模块上的GND ,另一支表笔点住 STM32板上的GND 。如果蜂鸣器响,或电阻值显示为 (或非常接近0),说明它们已经共地。

  • 方法二:电压档测量

    给CH340模块通电,用万用表直流电压档(DCV) ,一支表笔点住 STM32的GND ,另一支表笔点住 CH340的GND 。理论上,两点之间没有电压差,读数应为 0V。如果有电压读数,说明它们没有连接到一起。


没有共地,为什么ST-LINK一插反而亮了?

这是典型的电流回路借用 现象。你的PCB通过CH340的USB线连接到电脑,但很可能只连接了VCC(5V)线,GND线没有接。此时,从CH340到STM32的电力传输路径是不完整的,就像一个水池接了进水管却忘了接回水管,水无法流动,所以灯不亮。

当你插上ST-LINK时,ST-LINK的 GND 线 通过调试接口的线缆(通常是 20-pin 排线或 4-pin 连接线)连接到了你的PCB GND,而ST-LINK的USB端又连接到了电脑的GND。这时,ST-LINK的GND为你的PCB和CH340之间提供了一个额外的"回路通道",相当于把断了的水管重新接上了。于是,电流就能从CH340的VCC流出,经过STM32,点亮LED,再经过ST-LINK的GND线流回电脑,完成回路,所以灯就亮了。

这也可以解释为什么ST-LINK即使没有单独插电(其内部电路未激活),仅凭GND线就能让灯亮起来------因为在这种情况下,ST-LINK只是充当了一根导线(GND线)的角色,电力来源仍然是CH340模块的USB口。


总结与建议

现象 根本原因 解决方案
只接CH340,灯不亮 CH340的GND没有接到STM32的GND,回路中断 补接GND线
同时接CH340和ST-LINK,灯亮了 电路通过ST-LINK的GND线意外接通了回路 这是偶然的"假好"现象,不能依赖
排查方向 优先检查CH340与PCB之间的GND线是否连接 用万用表通断档验证

用万用表测量一下CH340模块的GND和STM32板的GND之间的通断。如果确认没有连接,只需要补上一根GND线,再接上CH340的VCC,STM32就应该能正常启动并点亮LED了。

相关推荐
科技互联.1 小时前
2026年仓储物流AMR品牌怎么选?普渡机器人等选型维度与ROI分析
大数据·人工智能·机器人
Gerardisite2 小时前
企业微信智能客服开发实战:API自动回复指南
java·开发语言·python·机器人·企业微信
2601_955781982 小时前
OpenClaw 对接 钉钉机器人 全流程指南
机器人·钉钉·open claw安装
hitgavin2 小时前
科技前沿-具身机器人视觉传感器布局
机器人·传感器
kobesdu12 小时前
【ROS2实战笔记-19】ROS2 生命周期节点的启动顺序、状态转换陷阱与热备方案
java·前端·笔记·机器人·ros·ros2
xwz小王子14 小时前
机器人学习十年进化史——从强化学习到VLA的范式变迁
大数据·学习·机器人
qcx2314 小时前
阿里 RynnVLA-002 源码深度拆解:一个 7B 模型如何同时当机器人大脑和世界模拟器
ai·机器人·llm·agent·具身智能·vla
波特率11520016 小时前
ROS2当中的几个关键的环境变量
机器人·ros·ros2
AI科技星18 小时前
【无标题】
人工智能·决策树·机器学习·数据挖掘·机器人