You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetson Xavier NX使用pyserial读取RS232称重终端返回乱码如何解决

排查与解决步骤

1. 排除系统默认串口参数干扰

你在Jetson端运行代码前,先手动通过stty命令强制设置串口参数,避免内核驱动默认配置覆盖你代码里的设置:

stty -F /dev/ttyUSB0 9600 cs8 -cstopb parenb -parodd

上述参数对应你代码里的配置:9600波特率、8数据位、1停止位、偶校验。设置完成后先直接用cat /dev/ttyUSB0测试,看返回是否正常。

2. 排查USB转RS232芯片驱动兼容性问题

你用的是USB转RS232转接板的话,JetPack 4.5对应的旧版本内核里,CH340/CH341系列芯片的驱动存在偶校验处理错误的已知bug,正好和你的现象匹配:硬件、代码都一致,只有arm64平台返回乱码。
首先用lsusb命令查看你转接板的芯片型号:

  • 如果是CH340/CH341芯片,有两种解决方法:
    • 优先换用FT232系列芯片的转接板,该系列驱动在arm架构下兼容性极高,不会出现奇偶校验处理异常的问题
    • 升级JetPack版本到4.6及以上,新版本内核已经修复了CH341驱动的奇偶校验bug
  • 如果是其他芯片,可尝试搜索对应芯片arm64架构的最新驱动重新编译安装

3. 关闭串口占用服务

Ubuntu默认开启的ModemManager服务会自动扫描串口发送AT指令,会干扰普通串口数据的读取,先临时停止该服务测试:

sudo systemctl stop ModemManager

测试正常后如果需要永久关闭,可执行:

sudo systemctl disable ModemManager

4. 确认串口参数生效

可以在你的pyserial代码打开串口后,增加一行打印串口配置的逻辑,对比Jetson和x86设备上的参数是否完全一致:

print(ser.get_settings())

如果参数存在差异,说明驱动不支持你设置的参数,需要更换转接板或驱动。

内容的提问来源于stack exchange,提问作者Максим

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 16:36:03