簡體   English   中英

從QT發送字符串到Arduino

[英]sending a string from QT to 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);


}

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)方法。

讓我知道是否有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM