首页 > 解决方案 > pySerial - 更新太慢

问题描述

我在 Windows 上,通过串行以 115200 波特率从另一台设备读取数据。传入的数据来自一个微控制器,该微控制器连接了一个传感器,发送整数传感器(陀螺仪)读数,范围从 1 到 25。

我使用 PuTTY 连接到它,我可以完美地读取这些值,并且当我移动陀螺仪时它们几乎会立即更新。

但是,当我使用下面的 python 代码时,在我移动陀螺仪后它需要将近 20-25 秒才能更新。为什么需要这么长时间?我如何解决它?我尝试了各种各样的事情,比如改变超时,增加睡眠延迟,没有任何效果。

import serial

ser = serial.Serial(COM1, 115200, timeout=0)
ser.flushInput()

while True:
    DATA = ser.readline()
    VAL = DATA[0:len(DATA)-1].decode("utf-8")
    print(VAL)

编辑:

import serial
import time

    ser = serial.Serial(COM1, 115200, timeout=0)
    ser.flushInput()

    while True:
        DATA = ser.readline()
        VAL = DATA[0:len(DATA)-1].decode("utf-8")
        print(VAL)
        bufClear = ser.read(ser.inWaiting())
        time.sleep(0.5)

现在我可以让它快速更新,但它似乎删除了一些信息。有时。例如,如果我将陀螺仪移动到对应于 22 的值。打印输出就像

22
22
2
2
2
22

标签: pythonpython-3.xpyserial

解决方案


推荐阅读