在Qt5下面使用串口通信首先需要在pro文件里面添加 QT+=serialport
在头文件里面写上
下面这段代码就是判断是否串口接入
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
{
QSerialPort serial;
qDebug() << "Name : " << info.portName();
qDebug() << "Description : " << info.description();
qDebug() << "Manufacturer: " << info.manufacturer();
serial.setPort(info);
if (serial.open(QIODevice::ReadWrite))
{
name=info.portName();
qDebug()<<info.portName();
serial.close();
}
}
</pre><p></p><p>这段代码就是设置串口的各种参数,然后连接串口</p><pre name="code" class="cpp"> my_serialport = new QSerialPort();
my_serialport->setPortName(name);//端口名字
my_serialport->setBaudRate(QSerialPort::Baud115200);//波特率
my_serialport->setDataBits(QSerialPort::Data8);//数据位
my_serialport->setParity(QSerialPort::NoParity);//无奇偶校检
my_serialport->setStopBits(QSerialPort::OneStop);//停止位
my_serialport->setFlowControl(QSerialPort::NoFlowControl);
my_serialport->open(QIODevice::ReadWrite);//打开方式
<pre name="code" class="cpp">while(1)
{
if(!my_serialport->waitForReadyRead(500))
<span style="white-space: pre;"> </span>continue;//最多等待500毫秒,没有数据就跳过
requestData = my_serialport->readAll();//读取全部数据
qDebug()<<requestData;
requestData.clear();
}