【发布时间】:2015-06-08 21:26:39
【问题描述】:
我在通过 QSerialPort 从 arduino 到我的 Qt 应用程序的通信时遇到问题。我有一个监听信号,它告诉我何时准备好从 arduino 读取数据。我期望步进电机在碰到限位开关之前所执行的步数的值,因此只有一个简单的 int,例如“2005”。当数据可供读取时,有时我会得到两个单独的读数,分别为“200”和“5”。显然,当我解析数据时,这会使事情变得混乱,因为它将它记录为两个数字,都比预期的数字小得多。
如果我不设置睡眠或 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;
阿杜诺:
int count = 2005;
Serial.print(count);
【问题讨论】:
-
你不能在读完所有预期的字符之前阻止吗?
标签: qt arduino microcontroller