我试图从qt应用程序发送一个字符串到arduino,起初我发送了一个简单的字符并且它有效,但当我尝试从我的Linedit
中取一个字符串时通过串口发送到arduino,它显示错误:
erreur:没有匹配函数来调用QSerialPort :: write(QString&)
这个代码
void MainWindow::on_pushButton_clicked()
{
QString envoi ;
envoi = ui->lineEdit->text();
/* ui->label->setText(envoi); */
serial.setPortName("com17");
serial.setBaudRate(QSerialPort::Baud9600);
serial.setDataBits(QSerialPort::Data8);
serial.setParity(QSerialPort::NoParity);
serial.setStopBits(QSerialPort::OneStop);
serial.setFlowControl(QSerialPort::NoFlowControl);
serial.open(QIODevice::ReadWrite);
serial.write(envoi);
}
答案 0 :(得分:0)
double
中提供了三种write
方法,所有这些方法均来自QSerialPort
QIODevice
最后
qint64 QIODevice::write(const char * data, qint64 maxSize)
qint64 QIODevice::write(const char * data) // equivalent to QIODevice::write(data, qstrlen(data));
你有几种可能来打电话,对我来说最简单似乎是
qint64 QIODevice::write(const QByteArray & byteArray)
使用
serial.write(envoi.toUtf8());
你也可以使用像
这样令人费解的东西QByteArray QString::toUtf8()
然后使用serial.write(envoi.toStdString.c_str() );
方法。
如果有帮助,请告诉我。