从QT发送字符串到Arduino

时间:2015-04-03 10:05:22

标签: c++ qt arduino

我试图从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);


}

1 个答案:

答案 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() ); 方法。

如果有帮助,请告诉我。