1

Qserialport を使用して、10 ミリ秒ごとに 7 バイトのデータを受信して​​います。ボーレートは 115200 です。また、signal(readyread) と slot(別の関数の readLine) メソッドを使用します。読み取り準備完了信号は、16ms ごとにのみ送信されます。しかし、私のデバイスは 10 ミリ秒間隔でデータを送信します。10ms間隔でサンプルを受信する方法。readyread 信号を 10ms 間隔で発行する方法。ありがとう

4

1 に答える 1

2

一般readyreadに、1 バイトが受信された場合でも信号が送信されます。ただし、応答時間は、ドライバー、CPU 負荷、Qt イベントループのビジー状態など、多くの要因によって異なります。

シリアル ポートで受信が検出されると、ドライバー バッファー内のすべてのデータが読み取られ、信号readyRead()が送信されます。ドライバーが受信を検出した瞬間から、すべてのバッファーを読み取ろうとするまで、さらにいくつかのバイトがポートに到着する可能性があります。

特定の間隔でデータを読み取りたい場合は、readyRead信号を使用する必要はありません。QTimer10ミリ秒間隔で、そのtimeout信号を を呼び出してデータを読み取るスロットに接続できますreadAll()

于 2015-02-10T10:20:50.467 に答える