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

时间:2015-02-10 09:42:11

标签: qt serial-port intervals qtserialport

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

1 个答案:

答案 0 :(得分:2)

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

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

如果您想以特定间隔阅读数据,则无需使用readyRead信号。您可以{10}间隔QTimer,并将其timeout信号连接到您通过调用readAll()读取数据的某个插槽。