QSerialPort:如何使用接收到的字节数调整 readysignal 的发射时间

QSerialPort: how to adjust the emiting time of readysignal using number of bytes received

我正在使用 Qserialport 每 10 毫秒接收一个 7 字节的数据。波特率为 115200。我使用信号(readyread)和插槽(单独函数中的 readLine)方法。 ready read 信号仅每 16ms 发出一次。但我的设备以 10 毫秒的间隔发送数据。如何以 10ms 的间隔接收样本。如何使 readyread 信号以 10ms 的间隔发出。谢谢

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

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

如果你想在一定的时间间隔读取数据,你不需要使用readyRead信号。您可以让 QTimer 具有 10 毫秒的间隔,并将其 timeout 信号连接到您通过调用 readAll().

读取数据的某个插槽