gpt4 book ai didi

c++ - Qt打开串口

转载 作者:行者123 更新时间:2023-11-30 05:12:45 25 4
gpt4 key购买 nike

我在 Qt 中打开串行端口时遇到问题。我在尝试打开端口失败后收到的错误消息是 UnsupportedOperationError。我想指出几件事:

  • 我尝试打开的端口是在使用 USB (CDC) 的 ARM MCU 中实现的,
  • 我可以在其他应用程序(如 teraterm 或 realterm)中打开端口,
  • 我能够在我的 Qt 应用程序中打开端口只需一分钟。我在 ARM 设备中添加了一些代码(根本不涉及 USB 功能),但我无法再在 Qt 中打开端口。
  • 我测试过我可以在其他程序(即 realterm)打开的端口上发送/接收数据,
  • 该端口适用于其他应用程序,但不适用于 Qt(尝试了 Qt creator 的终端示例,但它也无法打开该端口),

我过去曾遇到过这种行为,但没有时间深入研究。现在它阻止了我。打开端口会是什么情况? 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 中遇到错误或过度排斥行为。您不太可能在自己的代码中修复它。

如果没有 Qt 的调试版本,也无法进行调试。使用调试版本,您可以准确指出 QSerialPort 实现失败的位置。然后您就会知道发生了什么,并能够基于此提交 Qt 错误报告。由于您将被设置为构建 Qt,因此您可以自己修复错误并以这种方式快速开始。

关于c++ - Qt打开串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44366875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com