1
我在Qt中打開串口有問題。嘗試打開端口失敗後收到的錯誤消息是UnsupportedOperationError
。我想指出的幾件事情:用Qt打開串口
- 我嘗試使用USB(CDC)在ARM MCU實現港口,
- 我可以打開其他應用程序的端口(如teraterm或realterm ),
- 我能夠在一分鐘內開啓Qt應用程序中的端口。我在ARM設備中添加了一些代碼(根本不涉及USB功能),我不能再打開Qt中的端口。
- 我測試,我可以發送/上的端口中的其它程序(即realterm)打開接收到的數據,
- 端口工作在其他應用中,但不能QT(試圖從Qt的創建者的終端例如,它不能也打開端口),
我在過去遇到過這種行爲,但沒有時間深入其中。現在它阻止了我。打開港口的情況可能是什麼情況? 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程序中一樣。
不知道更改和您的代碼這將很難做一個故障排除在這裏。你是否創建了一個用於測試的最小Qt示例? – 0x0C4
Qt創建者的「終端」示例非常少。這也是關於我在ARM的代碼,而不是Qt。關鍵是我可以用其他程序打開端口,但不能使用Qt。我查看了qserialport.cpp文件以查找「UnsupportedOperationError」字符串。問題是我找不到任何匹配的錯誤代碼。我的錯誤字符串是'QSerialPort :: SerialPortError(UnsupportedOperationError)'。 – Bremen
Qt創建者的「終端」示例是否顯示相同的錯誤?請提供可追溯性程序的最低版本 – 0x0C4