-1

http://doc.qt.io/qt-5/qserialport.html#open

警告:模式必须是 QIODevice::ReadOnly、QIODevice::WriteOnly 或 QIODevice::ReadWrite。不支持其他模式。

以下代码不打开串口。

if(serialPort.open (QIODevice::ReadWrite | QIODevice::Unbuffered))
    {
        qDebug() << "asdasdas";
        serialPort.setDataBits(QSerialPort::Data8);
        serialPort.setParity(QSerialPort::NoParity);
        serialPort.setStopBits(QSerialPort::OneStop);
    }
    else
    {
        qDebug() << "QSerialPort::SerialPortError: " << serialPort.errorString();
    }

使用无缓冲标志的方法是什么?

4

2 回答 2

1

使用无缓冲标志的方法是什么?

空无一人。QSerialPort不支持它。

唉,你关于缓冲减慢你的假设是没有根据的,除非你有证明这个问题的测量。我敢打赌,你没有也不会有这样的测量结果。你还有其他问题。串行端口通常具有相对较慢的带宽,在缓冲方面,单兆位/秒不是问题,除非您正在做的事情导致缓冲具有二次成本,而不是线性成本,比例常数非常低通常有。

于 2016-05-09T13:59:14.397 回答
-1

我的gui在数据传输时变慢了

原则上是不可能的。因为所有的 I/O 都变成了异步的。问题很可能出在您的代码中。

此外,您还没有提供有关 Qt 版本和操作系统的信息。

PS:无缓冲模式对你没有帮助。另外QSerialPort不支持,错误码直接告诉你!你听得懂么?

于 2016-05-10T05:36:07.797 回答