簡體   English   中英

Qt Creator-RS232通過串行快速寫入

[英]Qt creator - RS232 writing over serial to fast

for(int i = 0; i < receivedACLCommands.count(); i++ )
{
    QByteArray s = receivedACLCommands[i].toLatin1();
    serialport->write(s);
    serialport->waitForBytesWritten(1000);
}

在我的方法中,我有一個包含所有命令的QStringList。 命令將被發送到PID控制器,該PID控制器需要在發送新命令之前處理該命令。 我用waitForBytesWriten嘗試過,但這對我不起作用。

*該控制器是舊的SCORBOT控制器-a(與ACL命令一起使用)。

是的,waitForBytesWritten()不會解決這個問題。 您只能做的另一件事是在等待調用后睡一會兒,從而使設備有一些時間來處理剛編寫的命令。 准確地睡多長時間當然是盲目的猜測,不一定是一個常數。

請務必先啟用握手功能,通常會經常忽略它。 QSerialPort :: setFlowControl()函數。 當體面的設備尚未准備好接收任何東西時,它將使用其RTS信號關閉您的CTS輸入(清除發送)。 Qt支持CTS / RTS握手,您使用QSerialPort :: HardwareControl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM