使用QT-QSerialport打不開串列埠的原因

fourierr發表於2017-07-18

首先已經確保串列埠轉USB驅動已經裝好,

1,可能是使用者沒有許可權,到/dev目錄中 使用chmod,賦予許可權

2,可能是開啟QT的過程中影響了波特率,因此一開始設定了波特路後執行open後再設定一邊波特率,如下

    port = new QSerialPort(this);  
    buff = new QByteArray;  
    port->setPortName("/dev/ttyUSB4");
    connect(port,&QSerialPort::readyRead,this,&Serial::ReadData);
    port->setBaudRate(QSerialPort::Baud115200);  //波特率
    port->setDataBits(QSerialPort::Data8);     //資料位
    port->setParity(QSerialPort::NoParity);    //無奇偶校驗
    port->setStopBits(QSerialPort::OneStop);   //無停止位
    port->setFlowControl(QSerialPort::NoFlowControl);  //無控制
    bool flag=port->open(QIODevice::ReadWrite);          //讀寫開啟
    if(flag)
    {
        qDebug()<<"port->open(QIODevice::ReadWrite)";
        qDebug("serial is open");
        port->setBaudRate(QSerialPort::Baud115200);  //波特率
        port->setDataBits(QSerialPort::Data8);     //資料位
        port->setParity(QSerialPort::NoParity);    //無奇偶校驗
        port->setStopBits(QSerialPort::OneStop);   //無停止位
        port->setFlowControl(QSerialPort::NoFlowControl);  //無控制
    }
    else
    {
        qDebug("serial ins not open");
    }

相關文章