将从Pyserial读取的数据解析为字符串

2024-04-26 13:59:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python(pyserial)从串行端口读取数据我能够读取数据,但是当我尝试使用它时,似乎$*%\xff\x06$*%\xff\x02引用了堆栈溢出上的一些资源,发现需要对其进行解码,我尝试使用processed = (binascii.b2a_qp(raw))使用binascii库将其解码为ascii,但收到了以下输出$*%=FF=00$*%=FF=08也尝试解码相同的UTF-8,但仍然没有成功。任何关于如何处理从read()函数收到的输入的建议。我也试过使用readline(),但是程序会变成空白或者无限执行,串行输出中似乎没有EOL标记。 演示代码snip如下:

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))

有什么建议吗?提前谢谢。你知道吗


Tags: 端口readval读取数据解码建议serff
1条回答
网友
1楼 · 发布于 2024-04-26 13:59:45

您可以尝试在写入串行端口时进行编码。你知道吗

ser.write(str.encode('S\r')

而在阅读方面,我会使用

a = ser.readline()
b = v.rstrip()
c = b.decode('utf-8')

相关问题 更多 >