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();
}
示例代码已上传:http://download.csdn.net/detail/u014597198/9834104