我有python pyserial脚本从串口读取值(比例)
设置正确的波特率等后。
在putty上它返回一个值:
0.00 Kg
0.00 Kg
但是来自pyserial readline()
/ read()
的值会返回包含无效ascii的bytearray
:
b' \xb0\xae\xb0\xb0 kg \r\x8a '
\xb0
,\xae
等于176,174十进制。这里有什么问题?
答案 0 :(得分:3)
请注意,176-128 = 48,而174-128 = 46。因此,您看到的某些数字大于您所期望的数字128.这意味着为某些字符设置了最高有效位(第7位),这反过来意味着某些通信设置(奇偶校验,长度) ,停止位)是错误的。试试7E1:
serial.Serial(..., bytesize=serial.SEVENBITS,
parity=serial.PARITY_EVEN, stopbits=serial.STOPBITS_ONE)
我无法确定这些参数当然是正确的;你必须找到正确的。
答案 1 :(得分:0)
print chr(0xb0-0x80) 0 print chr(0xae-0x80) 。 等 - 我怀疑你的数据长度设置不正确,(数据位)。