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()