我试图通过串行接口控制循环器,并且在导入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。
答案 0 :(得分:1)
根据您发布的命令,并且如果设备的手册为this one,我将假定您在发送命令后丢失了CR(回车符)字符。
尝试将以下行写入端口:
ser.write(b'R S1\r')
您阅读的部分应该没问题,您已经在阅读<CR><LF>
(回车+换行符)字符为止。但是,考虑到您知道这些字节,您也可以读取所需的确切字节数。对于此命令,尤其是13个字节:
contents=ser.read(13)