【发布时间】:2015-01-30 12:08:35
【问题描述】:
我正在尝试将我之前使用 serial->write... 功能从 GUI 读取的 7 个变量发送到我的微控制器。
我在我的微控制器上编写了一个小程序,如果有输入,它会闪烁一个 LED。但它只显示 5 个输入。
我认为可能是我的微控制器速度不够快,我停止了 Qt 程序,但没有奏效。 所以我不明白为什么输入太少。
此外,我使用 qDebug()
这是我的代码:
//conversion from QString into const char*
q_bauteillaenge = (ui->Bauteillaenge_e->text());
q_messintervall_vert = (ui->Messintervall_vert_e->text());
q_anz_inkrem_vert = (ui->Anzahl_Inkremente_vert_e->text());
q_inkrem_laenge_vert = (ui->Inkrementlaenge_vert_e->text());
q_anz_messungen_vert = (ui->Anzahl_Messungen_vert_e->text());
q_abs_messungen_vert = (ui->Abstand_Messungen_vert_e->text());
a_bauteillaenge = q_bauteillaenge.toUtf8();
a_messintervall_vert = q_messintervall_vert.toUtf8() ;
a_anz_inkrem_vert = q_anz_inkrem_vert.toUtf8() ;
a_inkrem_laenge_vert = q_inkrem_laenge_vert.toUtf8() ;
a_anz_messungen_vert = q_anz_messungen_vert.toUtf8();
a_abs_messungen_vert = q_abs_messungen_vert.toUtf8();
bauteillaenge = a_bauteillaenge.constData();
messintervall_vert = a_messintervall_vert.constData() ;
anz_inkrem_vert = a_anz_inkrem_vert.constData() ;
inkrem_laenge_vert = a_inkrem_laenge_vert.constData() ;
anz_messungen_vert = a_anz_messungen_vert.constData();
abs_messungen_vert = a_abs_messungen_vert.constData();
//Sending
qDebug() << serial->write("1");
serial->write("\n");
qDebug() << serial->write(bauteillaenge);
serial->write("\n");
qDebug() << serial->write(messintervall_vert);
serial->write("\n");
qDebug() << serial->write(anz_inkrem_vert);
serial->write("\n");
qDebug() << serial->write(inkrem_laenge_vert);
serial->write("\n");
qDebug() << serial->write(anz_messungen_vert);
serial->write("\n");
qDebug() << serial->write(abs_messungen_vert);
serial->write("\n");
我的错在哪里?
问候
【问题讨论】:
-
QIODevice::write返回写入的字节数。这就是为什么在qDebug() << serial->write("500")之后在日志中得到“3”的原因。如果你想检查你要发送的字符串,你应该直接发送到qDebug():qDebug() << anz_inkrem_vert。 -
好的,我知道了,我假设了另一个输出。但我只是添加了这个,因为我想看看是否有可能为什么不发送所有变量。
标签: c++ qt port communication