QSerialPort和QSerialPortInfo库去调用串口
创建对象
QSerialPort *m_serial
寻找可用串口
QStringList SerialPort::GetEnableCommPortQt()
{
QStringList CommPortList;
//QSerialPortInfo中availablePorts()函数生成了一个QSerialPortInfo对象的QList,其中的每个QSerialPortInfo对象分别对应各个端口的信息
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())//遍历QSerialPortInfo::availablePorts()里的每一项
{
QSerialPort serial;//创建QSerialPort类的对象
serial.setPort(info);//setPort 设置端口
if (serial.open(QIODevice::ReadWrite))//以可读可写方式打开设备,如果成功
{
CommPortList.append(serial.portName());
serial.close();
}
}
return CommPortList;
}
打开串口
m_serial->open(QIODevice::ReadWrite)
设置波特率
m_serial->setBaudRate(nBaudRate)
设置奇偶校验
m_serial->setParity(QSerialPort::NoParity)
设置数据位
m_serial->setDataBits(QSerialPort::Data5)
设置停止位
m_serial->setStopBits(QSerialPort::OneStop)
设置流控制
m_serial->setFlowControl(QSerialPort::NoFlowControl)
发送数据
m_serial->write(SendBytes)
连接读信号和读数据函数
connect(m_serial, SIGNAL(readyRead()), this, SLOT(slot_RecvPortData()))
读数据函数读数据
QByteArray bytes = m_serial->readAll();