1

我使用 Qserialport 每 10 毫秒接收一个 7 字节的数据。波特率为 115200。我使用 signal(readyread) 和 slot(readLine in a separate function) 方法。就绪读取信号仅每 16 毫秒发出一次。但我的设备以 10 毫秒的间隔发送数据。如何以 10 毫秒的间隔接收样本。如何使readyread信号以10ms的间隔发出。谢谢

4

1 回答 1

2

通常readyread即使接收到一个字节也会发出信号。但是响应时间取决于许多因素,例如驱动程序、CPU 负载或 Qt 事件循环的繁忙程度。

当串口检测到接收时,将读取驱动缓冲区中的所有数据,然后readyRead()发出信号。从驱动程序检测到接收到它尝试读取所有缓冲区的那一刻,可能会有更多字节到达端口。

如果你想以一定的间隔读取数据,你不需要使用readyRead信号。您可以有QTimer10 毫秒的间隔,并将其timeout信号连接到您通过调用读取数据的某个插槽readAll()

于 2015-02-10T10:20:50.467 回答