QSerialPort处理串口通信简单示例

串口通信需要添加Qt相关库:

QT += serialport

大概是这样的。首先可以利用QSerialPortInfo读取设备相关信息,然后我们用容器把他们装起来,再利用QSerialPort与端口进行输入输出交互。


读取设备信息时,可以这样做:

foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
        qDebug() << "Name : " << info.portName();
        qDebug() << "Description : " << info.description();
        qDebug() << "Manufacturer: " << info.manufacturer();
        qDebug() << "Serial Number: " << info.serialNumber();
        qDebug() << "System Location: " << info.systemLocation();
}


在设置端口时,可以这样做:

m_serialport= new QSerialPort();    

//设置COM口

m_serialport->setPortName(ui->comboBox->currentText());

//设置波特率和读写方向

m_serialport->setBaudRate(QSerialPort::Baud9600,QSerialPort::AllDirections);

//数据位为8位

m_serialport->setDataBits(QSerialPort::Data8);

//无流控制

m_serialport->setFlowControl(QSerialPort::NoFlowControl);

//无校验位

m_serialport->setParity(QSerialPort::NoParity);

//一位停止位

m_serialport->setStopBits(QSerialPort::OneStop);

//先关串口,再打开,可以保证串口不被其它函数占用。

m_serialport->close();

//以可读写的方式打开串口

if(m_serialport->open(QIODevice::ReadWrite))

{

//读取数据  串口读取出来的数据类型 是QByteArray 不是QString

 m_requestData = m_serialport->readAll();

}


示例代码已上传CSDN:http://download.csdn.net/detail/u014597198/9834104

你可能感兴趣的:(//Qt,QML,//Windows)