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

如何用PySerial持续读取并解析Ubuntu下USB硬件的十六进制数据?

嘿,我来帮你一步步解决这个串口数据捕获的问题!

1. 让脚本持续打印数据

你的当前脚本只读取一次10000字节就结束了,要实现持续捕获,只需要加个循环就行。这里给你写个带基础异常处理的版本,方便你用Ctrl+C安全退出:

import serial

# 初始化串口,注意确认/dev/ttyUB0是正确的设备名,波特率要和硬件完全匹配
ser = serial.Serial('/dev/ttyUB0', 9600, timeout=1)  # 加timeout避免程序一直阻塞

try:
    while True:
        # 可以根据硬件传输逻辑调整读取字节数,比如每次读16字节,或者读一行(如果硬件带换行分隔)
        raw_data = ser.read(16)
        if raw_data:  # 避免打印空数据
            # 打印原始字节数据
            print(f"原始字节: {raw_data}")
            # 转成可读性更强的十六进制格式(用空格分隔每个字节)
            hex_data = raw_data.hex(' ')
            print(f"十六进制格式: {hex_data}\n")
except KeyboardInterrupt:
    print("\n用户手动终止程序")
finally:
    ser.close()  # 确保退出时关闭串口,避免占用资源
2. 十六进制数据解析

因为串口返回的是bytes类型,你可以直接对其进行解析:

  • 如果只是想查看十六进制字符串,用上面的hex()方法就足够;
  • 如果硬件是按特定协议传输(比如固定帧格式、特定字节代表传感器值/状态),可以直接提取字节并转换:
import struct

# 举个例子:假设前4字节是大端格式的32位整数
if len(raw_data) >= 4:
    # 用struct模块解析多字节数值,>I表示大端无符号32位整数
    parsed_value = struct.unpack('>I', raw_data[:4])[0]
    print(f"解析出的整数: {parsed_value}")

# 提取单个字节的十进制值
single_byte_value = int(raw_data[0])
print(f"第一个字节的十进制值: {single_byte_value}")
3. 数据保存与分析的选择

这取决于你的具体需求:

  • 如果不需要实时分析:把数据保存到文本文件是个不错的选择,事后可以用单独脚本、Excel甚至Python的pandas做深度分析。修改上面的循环,加上文件写入逻辑:
import serial

ser = serial.Serial('/dev/ttyUB0', 9600, timeout=1)

try:
    # 用追加模式打开文件,避免覆盖已有数据
    with open('serial_capture.log', 'a') as log_file:
        while True:
            raw_data = ser.read(16)
            if raw_data:
                hex_data = raw_data.hex(' ') + '\n'
                print(hex_data.strip())
                log_file.write(hex_data)
                log_file.flush()  # 强制立即写入文件,避免缓存延迟
except KeyboardInterrupt:
    print("\n用户手动终止程序")
finally:
    ser.close()

之后你可以写一个单独的分析脚本,读取serial_capture.log文件来处理历史数据。

  • 如果需要实时分析:直接在同一个循环里处理数据就好,比如解析后实时判断阈值、统计数据等,这样不用额外写脚本,效率也更高。

最后提醒下:确认你的串口设备名是否正确(常见的是/dev/ttyUSB0,你写的/dev/ttyUB0可能是笔误?),还有波特率、数据位、停止位这些参数必须和硬件完全匹配,否则会读到乱码。

内容的提问来源于stack exchange,提问作者Lauren

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:05:19