【问题标题】:sending a string from QT to Arduino将字符串从 QT 发送到 Arduino
【发布时间】:2015-04-03 10:05:22
【问题描述】:

我正在尝试从 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);


}

【问题讨论】:

    标签: c++ qt arduino


    【解决方案1】:

    QSerialPort 中提供了三个write 方法,它们都继承自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() );
    

    然后将使用write(const char * data) 方法。

    如果这有帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多