如何正确地从端口写入和读取字节?获取空字节或错误字节

时间:2019-06-19 14:04:02

标签: python serial-port pyserial

我试图通过串行接口控制循环器,并且在导入Pyserial并打开端口后,我尝试写入和读取端口的数据。首先,我得到了错误的数据,所以我写了两行刷新输入和输出。现在,要么我得到空数据,要么得到这个字节:b'?\ r \ n'。

也许我在命令中做错了。我不知道我是否必须处理cr或lf。 (回车)

命令示例:

命令:“ R S1”,cr 答案:S1 + 0070.00 $

这是我的代码。我尝试在端口上写R S1,然后再读取端口。

while(i <= 3):
    ser.write(b'R S1')
    print(i)
    contents = ser.readline()
    print(contents)
    i = i + 1

我希望当前温度为28.5°C。

1 个答案:

答案 0 :(得分:1)

根据您发布的命令,并且如果设备的手册为this one,我将假定您在发送命令后丢失了CR(回车符)字符。

尝试将以下行写入端口:

ser.write(b'R S1\r')

您阅读的部分应该没问题,您已经在阅读<CR><LF>(回车+换行符)字符为止。但是,考虑到您知道这些字节,您也可以读取所需的确切字节数。对于此命令,尤其是13个字节:

contents=ser.read(13)