我在Qt中打开串口时遇到问题。尝试打开端口失败后收到的错误消息是UnsupportedOperationError
。我想指出几件事:
我过去曾经遇到过这种行为,但没有时间深入研究。现在它阻止了我。打开港口可能会出现什么情况? qt是否对它提出了任何额外要求?我真的很感激所有的帮助。 我在Windows机器上运行qt。
编辑:这是负责打开端口的Qt创建者的终端示例的一部分。
void MainWindow::openSerialPort()
{
SettingsDialog::Settings p = settings->settings();
serial->setPortName(p.name);
serial->setBaudRate(p.baudRate);
serial->setDataBits(p.dataBits);
serial->setParity(p.parity);
serial->setStopBits(p.stopBits);
serial->setFlowControl(p.flowControl);
if (serial->open(QIODevice::ReadWrite)) {
console->setEnabled(true);
console->setLocalEchoEnabled(p.localEchoEnabled);
ui->actionConnect->setEnabled(false);
ui->actionDisconnect->setEnabled(true);
ui->actionConfigure->setEnabled(false);
showStatusMessage(tr("Connected to %1 : %2, %3, %4, %5, %6")
.arg(p.name).arg(p.stringBaudRate).arg(p.stringDataBits)
.arg(p.stringParity).arg(p.stringStopBits).arg(p.stringFlowControl));
} else {
qDebug() << "Failed to open serial port " << serial->portName() << "Error: " << serial->error();
QMessageBox::critical(this, tr("Error"), serial->errorString());
showStatusMessage(tr("Open error"));
}
}
我添加了qith qDebug
行以显示错误消息。它和我的Qt程序一样。
答案 0 :(得分:1)
您在Qt中遇到了错误或过度排斥的行为。你不可能在你自己的代码中修改它。
如果没有Qt的调试版本,它也无法调试。使用调试版本,您可以确切地指出它失败的QSerialPort
实现中的位置。然后,您将了解正在进行的操作,并能够根据该报告提交Qt错误报告。由于您已经设置好构建Qt,您可以自己修复错误并快速开始。