我正在使用python(pyserial)从串行端口读取数据,但我可以读取数据,但是当我尝试使用它时,$*%\xff\x06$*%\xff\x02
似乎在堆栈溢出中引用了很少的资源,发现它需要解码,我尝试使用processed = (binascii.b2a_qp(raw))
库binascii
将其解码为ascii,但收到以下输出$*%=FF=00$*%=FF=08
我也尝试将其解码为UTF-8,但仍然没有成功。关于如何处理从read()
函数接收到的输入的任何建议。我也尝试使用readline()
,但程序随后变为空白或无限执行,似乎串行输出中没有EOL标记。
演示代码片段如下:
with serial.Serial('/dev/cu.usbserial-Device',9600) as ser:
ser.flushInput()
ser.flushOutput()
ser.write('S')
inputVal=[]
while(len(inputVal)<10000):
val = ser.read(10)
inputVal.append(binascii.b2a_qp(val))
有什么建议吗?提前致谢。
答案 0 :(得分:0)
您可以在写入串行端口的同时尝试进行编码。
ser.write(str.encode('S\r')
在阅读时,我会使用类似的
a = ser.readline()
b = v.rstrip()
c = b.decode('utf-8')