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

RS-232接口UHF RFID阅读器字节转十六进制字符串格式求助

UHF RFID阅读器串口输出格式调整问题

我有一台物理接口兼容RS-232规范的UHF RFID阅读器,通信参数为1起始位、8数据位、1停止位、无奇偶校验。以下是我控制阅读器读取UHF RFID标签的代码:

import serial

ser = serial.Serial(port='COM8', baudrate=115200, timeout=0.01)
ba_antenna_set_1 = b'\xA0\x04\x01\x74\x00\xE7'
ba_antenna_set_2 = b'\xA0\x04\x01\x74\x10\xD7'
ba_inventory =  b'\xA0\x04\x01\x89\x01\xD1' 
ser.write(ba_antenna_set_1);
ser.write(ba_antenna_set_2);
while True:
    ser.write(ba_inventory);
    if ser.in_waiting > 0:    
        data = ser.readline()
        print(data)

运行代码后,得到的输出如下:

b'\xa0\x04\x01t\x10\xd7'
b'\xa0\x13\x01\x89t0\x000\x083\xb2\xdd\xd9\x01@\x00\x00\x00\x00M\xbe'
b'\xa0\n'
b'\x01\x89\x00\x00\x10\x00\x00\x00\x01\xbb'
b'\xa0\x13\x01\x89\x040\x000\x083\xb2\xdd\xd9\x01@\x00\x00\x00\x00N-'

我希望输出格式改为如下形式(大写十六进制,字节间用空格分隔,整体包裹单引号):

'A0 04 01 74 00 E7'
'A0 04 01 74 10 D7'
'A0 04 01 89 01 D1'
'A0 13 01 89 24 30 00 30 08 33 B2 DD D9 01 40 00 00 00 00 50 0B'
'A0 0A 01 89 00 00 11 00 00 00 01 BA'

修改后的代码

要实现目标格式,只需添加一个格式化函数转换字节串格式,同时优化串口读取逻辑避免数据分段,修改后的代码如下:

import serial

def format_bytes(data):
    # 将字节串转为两位大写十六进制,用空格连接后包裹单引号
    hex_str = ' '.join(f'{byte:02X}' for byte in data)
    return f"'{hex_str}'"

ser = serial.Serial(port='COM8', baudrate=115200, timeout=0.01)
ba_antenna_set_1 = b'\xA0\x04\x01\x74\x00\xE7'
ba_antenna_set_2 = b'\xA0\x04\x01\x74\x10\xD7'
ba_inventory =  b'\xA0\x04\x01\x89\x01\xD1' 

# 发送命令并打印格式化内容
ser.write(ba_antenna_set_1)
print(format_bytes(ba_antenna_set_1))

ser.write(ba_antenna_set_2)
print(format_bytes(ba_antenna_set_2))

while True:
    ser.write(ba_inventory)
    print(format_bytes(ba_inventory))
    if ser.in_waiting > 0:    
        data = ser.read(ser.in_waiting)  # 读取所有待接收数据,避免粘包
        print(format_bytes(data))

关键说明

  1. format_bytes函数负责核心转换:遍历字节串的每个字节,转为两位大写十六进制格式,用空格拼接后包裹单引号。
  2. 替换ser.readline()为ser.read(ser.in_waiting),避免因阅读器返回数据不含换行符导致的分段读取问题,保证数据完整性。
  3. 发送每个命令后立即打印其格式化内容,与阅读器返回的格式化数据一一对应。

内容的提问来源于stack exchange,提问作者Ali Musabeyoğlu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:53:09