python正常情况通过串口 serial  传输数据的时候,都是以字符串的形式发送的

str = ‘abcd’

ser.write(str.encode())#直接发送str报错,需要发送byte类型的,即 b‘abcd’

data = ser.readline()

如果要想直接发送16进制的数据,需要使用如下方法:

ser=serial.Serial('COM6',115200,timeout=1.5,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS)

senddata = '020000AA700019010D44435F5365745F574C4D6F64650201310301310402393503B8'

ser.write(bytes.fromhex(sendData))

 

从串口获取原数据(16进制):

data = str(binascii.b2a_hex(ser.readline())).upper()