0


在设置正确的波特率等后,我有 python pyserial 脚本从串行端口(刻度)读取值。
在腻子上它返回一个值:

0.00 Kg  
0.00 Kg

但是来自 pyserial readline()/的值read()返回一个bytearray包含无效 ascii 的值:

b'  \xb0\xae\xb0\xb0 kg \r\x8a  '
  • \xb0,\xae等于 176, 十进制的 174。
  • 十进制字符 0 应该是 48 和 0x30
  • 特点 。十进制应为 46, 0x2E

这里有什么问题?

4

2 回答 2

3

请注意,176-128=48,174-128=46。因此,您看到的某些数字比您预期的大 128。这意味着为某些字符设置了最高有效位(第 7 位),这反过来意味着某些通信设置(奇偶校验、长度,停止位)是错误的。尝试使用 7E1:

serial.Serial(..., bytesize=serial.SEVENBITS,
    parity=serial.PARITY_EVEN, stopbits=serial.STOPBITS_ONE)

当然,我不能确定这些参数是否正确;你必须找到正确的。

于 2013-08-01T10:24:16.503 回答
0

打印字符(0xb0-0x80)0打印字符(0xae-0x80)。等 - 我怀疑你的数据长度设置不正确,(数据位)。

于 2013-08-01T10:20:07.077 回答