我正在尝试使用Python解释来自GPS设备的一些串口消息。 据我所知: 1)消息在ascii中 2)消息是连续流式传输
因此我的代码是:
import serial
ser = serial.Serial('COM6',9600)
while True:
ser.close()
ser.open()
line = ser.readline()
print ('original code')
print (line)
result=line.decode(encoding='ascii',errors='strict')
print ('decoded msg')
print (result)
但是,我得到了一些非常奇怪的结果:
原始代码
b'\xb5b\x02\x10\xe0\x00\'\xe4B\x01\xd7\x06\t\x00\x00\x00t\x07\xc0\x1f\x1aA\x80g*F\xc2\x8csA\xa4\xc9P\xc4\x13\x04\x19\x03\x12\xea\x86\xa1\xcc\xc16\xc1z\x19x\xab\x93asA\xde7\x16E\x0b\x07"\x00\x00\x80T7\xb1\xee&\xc1\xc6M[\xb8K\xc1sA\xec\x02\x88D\x07\x04\x16\x03\x00\x00\xf9G\x9b\xc7+A\x19\xd1\x0e\xce\x92\x12tA\xdc\x97\xcc\xc4\x03\x04\x18\x03\x00\x80`\xa9\xb3\x0b/A\x0c\x1c\x19\xa0\x1b\x0euA2\xc2\xdf\xc4\x1b\x04\x16\x03\r\xd0\x9c\x81\x03\xa7@\xc1s-\xb2\xe9{\xc3tA\xd1AdE\x01\x07"\x00\x00\xc0/"&\x150A9\n'
Traceback (most recent call last):
File "C:/2_Task1/test2.py", line 11, in <module>
result=line.decode(encoding='ascii',errors='strict')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in position 0: ordinal not in range(128)
我想做的是: 1)解码消息而不丢失任何数据以便以清晰的格式存储所有数据 2)每次运行循环时都知道为什么代码的长度不同