问题背景
用python调试串口通信协议时,模拟一组16进制字节数据,通过文本形式表示,最终转为16进制形式,数据前后出现异常。
解决方法
不能使用encode(),应该使用b''字符表示'的形式,对比程序如下。
错误使用
#异常代码:
data2='\xaa\x01\x01\x06\x01\x02\x03\x04\x05\x06\xc7'.encode()
print("data2:",data2)
#输出结果:
#data2: b'\xc2\xaa\x01\x01\x06\x01\x02\x03\x04\x05\x06\xc3\x87'
正确 使用
#正常输出
data2=bytes(b'\xaa\x01\x01\x06\x01\x02\x03\x04\x05\x06\xc7')
print("data2:",data2)
#输出结果:
#data2: b'\xaa\x01\x01\x06\x01\x02\x03\x04\x05\x06\xc7'