通过QSerialPort将arduino和我的Qt应用程序进行通信时出现问题。我有一个监听信号告诉我什么时候有数据可以从Arduino中读取。我希望步进电机在碰到限位开关之前已经执行的步数值,因此只有一个简单的整数,例如“2005”。当数据可供阅读时,有时候我会用“200”和“5”得到两个单独的读数。很明显,当我解析数据时,这会让我感到困惑,因为它会将它记录为两个数字,这两个数字都比预期的数字小得多。使用QSerialPort从Arduino打印到Qt的通信问题
我该如何解决这个问题,而不需要在睡眠或QTimer中允许多一点时间让数据从arduino进入?注意:我的程序不是多线程的。
例Qt代码:
//Get the data from serial, and let MainWindow know it's ready to be collected.
QByteArray direct = arduino->readAll();
data = QString(direct);
emit dataReady();
return 0;
的Arduino:
int count = 2005;
Serial.print(count);
难道你不能阻止,直到你阅读所有预期的字符? – 2015-04-03 19:04:51