"device not open" - 齐奥德维斯



你看到一个代码扇区打开一个设备QIODevice:

void MACH3::on_pushButton_clicked()
{
serial = new QSerialPort(this);
serial->setBaudRate(QSerialPort::Baud115200);
serial->setDataBits(QSerialPort::Data8);
serial->setParity(QSerialPort::NoParity);
serial->setStopBits(QSerialPort::OneStop);
serial->setFlowControl(QSerialPort::NoFlowControl);
serial->open(QIODevice::ReadWrite);
QString time = QTime::currentTime().toString();
QString elde = ui->data->toPlainText();
QString eldetut = ui->data->toPlainText();
QByteArray inBytes;
const char *cStrData;
inBytes = elde.toUtf8();
cStrData = inBytes.constData();
QString qtStrData;
qtStrData = QString::fromUtf8(cStrData);
QString gelen = serial->readAll();
if(gelen.length()>0)
{
QString eldetut = ui->data->toPlainText();
QString time2 = QTime::currentTime().toString();
ui->data->setText(eldetut+"n"+time2 + "n" + "received-> "+gelen + "n");
}
}

你能检查一下上面的代码吗?

As failure message came:

QIODevice::read (QSerialPort): device not open

您应该根据文档检查调用open()的返回值:https://doc.qt.io/qt-6/qserialport.html#open

我认为主要的问题是你没有在你的代码中指定端口名称(既不是通过构造函数也不是通过setPortName()/setPort())

最新更新