为什么我的 pySerial 数据会在中途损坏?

问题描述 投票:0回答:1

这在使用 Python 3.10 的 Windows 上运行得非常好。输入的数据有一个分隔符,一次传递一条消息,生活很美好……直到我在 Linux 上进行测试。特别是 Ubuntu 18.04.

在 Linux 上,它成功地接收到一些消息,然后它得到垃圾,非 ascii 值。奇怪的是,它经常在定界符之后立即变成垃圾,这似乎是一个提示,但我不确定是如何提示的。我尝试将解码更改为“utf-8”、“utf-16”和各种其他内容,但观察到相同的行为。

import serial, time
    incoming= ''
    delim = 'xyz'
    ser = serial.Serial(port=port, baudrate=baud, timeout=timeout)
    while True:
        while ser.in_waiting > 0:
            incoming += ser.read(ser.in_waiting).decode('ascii')
            while delim in incoming:
                deliver, incoming = incoming.split(delim, 1)
                if deliver:
                    print(deliver)
        time.sleep(0.1)

对问题可能是什么有什么建议吗?

python serial-port embedded-linux pyserial
1个回答
0
投票

stty -F /dev/ttyUSBx

这显示了串行设置,它确定了某些东西正在改变波特率。当我打印

ser.baudrate
时,Python 表示没有变化,但上面的命令显示了硬件的实际状态,问题是。

现在我需要想办法让 BAUD 不改变......

© www.soinside.com 2019 - 2024. All rights reserved.