从串口读取十六进制数据
Reading hex data from serial port
我正在尝试从通过 USB 连接的 MCU 读取十六进制数据。 MCU 旨在提供十六进制输出。
这是我使用 pyserial 编写的简单代码:
import serial
import time
ser = serial.Serial()
ser.port = '/dev/ttyUSB1'
ser.baudrate = 921600
ser.open()
bytesize = serial.EIGHTBITS
parity = serial.PARITY_NONE
stopbits = serial.STOPBITS_ONE
f = open('dataFile.txt','a')
for i in range(50):
line = ser.readline()
print(line)
line=str(line)
f.write(line)
大部分输出都是十六进制的,看起来不错,但也有这样的部分:
\x02\x01\x04\x03\x06\x05\x08\x07\x03\x00\x03\x03@\x00\x00\x00Ch\n'b'\x00^\xd4\x00\x00\xa1\xc7\x97\xbd\x00\x00\x00\x00\x00\x00\x00\x00
我得到像 \x00Ch\n'b'\x00^ 这样的字符,它们不是十六进制的,看起来像是一个错误。
您建议我如何更新代码以获得纯十六进制输出?
我正在尝试从通过 USB 连接的 MCU 读取十六进制数据。 MCU 旨在提供十六进制输出。
这是我使用 pyserial 编写的简单代码:
import serial
import time
ser = serial.Serial()
ser.port = '/dev/ttyUSB1'
ser.baudrate = 921600
ser.open()
bytesize = serial.EIGHTBITS
parity = serial.PARITY_NONE
stopbits = serial.STOPBITS_ONE
f = open('dataFile.txt','a')
for i in range(50):
line = ser.readline()
print(line)
line=str(line)
f.write(line)
大部分输出都是十六进制的,看起来不错,但也有这样的部分:
\x02\x01\x04\x03\x06\x05\x08\x07\x03\x00\x03\x03@\x00\x00\x00Ch\n'b'\x00^\xd4\x00\x00\xa1\xc7\x97\xbd\x00\x00\x00\x00\x00\x00\x00\x00
我得到像 \x00Ch\n'b'\x00^ 这样的字符,它们不是十六进制的,看起来像是一个错误。
您建议我如何更新代码以获得纯十六进制输出?