将字符串从 QT 发送到 Arduino
Posted
技术标签:
【中文标题】将字符串从 QT 发送到 Arduino【英文标题】:sending a string from QT to 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);
【问题讨论】:
【参考方案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)
方法。
如果这有帮助,请告诉我。
【讨论】:
以上是关于将字符串从 QT 发送到 Arduino的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Qt 中的程序不断向我的 Arduino 发送字符串?