打开时 QSerialPort 错误信号,但打开返回 true

Posted

技术标签:

【中文标题】打开时 QSerialPort 错误信号,但打开返回 true【英文标题】:QSerialPort error signal on open, but open returns true 【发布时间】:2016-01-14 02:08:59 【问题描述】:

我正在使用 Qt 5,当我打开串口时,打开成功,但立即收到错误信号。我这样打开端口:

m_serial->setPortName(m_deviceName);
m_serial->setBaudRate(QSerialPort::Baud9600);
m_serial->setDataBits(QSerialPort::Data8);
m_serial->setParity(QSerialPort::NoParity);
m_serial->setStopBits(QSerialPort::OneStop);
m_serial->setFlowControl(QSerialPort::NoFlowControl);
if (m_serial->open(QIODevice::ReadWrite)) 
    qDebug() << "Opened port";
 else 
    qDebug() << "Port error on open:" << m_serial->errorString();
    return;

并且打开工作(说“打开端口”),但错误槽立即报告:

错误编号:0,消息:“没有这样的文件或目录”

为什么会触发此错误?打开后,我可以毫无错误地写入和读取端口(不确定数据是否在流动,只是没有错误)

【问题讨论】:

【参考方案1】:

QSerialPort 错误枚举表示 0 实际上没有发生错误,可能是在打开端口时触发信号以确认没有错误。 QSerialPort 错误列表在这里:http://doc.qt.io/qt-5/qserialport.html#SerialPortError-enum

【讨论】:

我同意 - 我只是不明白为什么设计明智。既然端口开放函数返回真,为什么还要发出信号呢? (除非我遗漏了什么) 这似乎是一个奇怪的决定,但我认为他们已经为连接生命周期的所有阶段构建了错误发射,并希望保证他们会得到一些回报。

以上是关于打开时 QSerialPort 错误信号,但打开返回 true的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 5 可以打开我的项目,但 Xcode 6 在尝试打开时崩溃

安装proteus7.4成功后,isis打开时总出现license key以下错误提示:

当另一个文档已经打开时,打开Word文档时出现错误4605

SQL Server2008打开时遇到的问题:“请验证实例名称是不是正确并且SQL Server已配置为允许远程连接”。

当outlook打开附件的EXCEL表报出 文件已经损坏 但别人能打开时

EndUpdateResource()抛出错误110当windowsexplorer在输出位置打开时,系统无法打开指定的设备或文件