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

时间:2016-05-09 12:06:56

标签: qt serial-port qiodevice

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

使用unbuffered标志的方法是什么?

2 个答案:

答案 0 :(得分:1)

  

使用unbuffered标志的方法是什么?

没有。 QSerialPort并不支持。

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

答案 1 :(得分:-1)

  

我的gui在数据传输时变慢

原则上这是不可能的。因为所有I / O都异步。最可能的问题出在你的代码中。

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

PS:无缓冲模式无法帮助您。此外,QSerialPort不支持它,错误代码直接为您说明!你懂这个了吗?