QIODevice::ReadWrite | QIODevice::Unbuffered - 不支持的打开模式

QIODevice::ReadWrite | QIODevice::Unbuffered - Unsupported open mode

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

Warning: The mode has to be QIODevice::ReadOnly, QIODevice::WriteOnly, or QIODevice::ReadWrite. Other modes are unsupported.

以下代码没有打开串口。

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();
    }

unbuffered flag的使用方法是什么?

what is the way to use the unbuffered flag?

有none。 QSerialPort不支持

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

My gui slows down while data transmission

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

此外,您还没有提供有关Qt版本和您的OS的信息。

PS: 无缓冲模式对你没有帮助。另外QSerialPort不支持,错误码直接给你说了!你到底懂不懂呢?