Qt 串口类QSerialPort 使用笔记

Qt串口类QSerialPort使用笔记

虽然现在大多数的家用

当前的

QSerialPort类提供了操作串口的各种接口。

QSerialPortInfo是一个辅助类,可以提供计算机中可用串口的各种信息。

使用方法

先介绍QSerialPortInfo的使用。下面是一个简单的例子,用来列举出电脑上全部的串口设备。

首先,需要在pro文件中增加如下内容:

QT+=serialport

Cpp文件如下:

#include <QCoreApplication>#include <QDebug> #include <QSerialPort>#include <QSerialPortInfo> int main(int argc, char *argv[]){QCoreApplication a(argc, argv);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();}return a.exec();}

在我的电脑上显示的结果如下:

Name : "COM1"Description : "通信端口"Manufacturer: "(标准端口类型)"Serial Number: ""System Location: "\\.\COM1"Name : "COM5"Description : "USB Serial Port"Manufacturer: "FTDI"Serial Number: "A400G3UXA"System Location: "\\.\COM5"

通常,,我们需要指定程序使用某一个确定的串口,这时不能只使用串口名称,因为

#include <QCoreApplication>#include <QDebug>#include <QSerialPort>#include <QSerialPortInfo>int main(int argc, char *argv[]){QCoreApplication a(argc, argv);QSerialPortInfo com_info;foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){if( info.serialNumber() == "A400G3UXA" ){com_info = info;break;}}qDebug() << "Name : " << com_info.portName();qDebug() << "Description : " << com_info.description();qDebug() << "serialNumber: " << com_info.serialNumber();return a.exec();}

QSerialPort

另外有一个重要的

每次串口收到数据后都会发出这个

下面的代码片段给出了设置串口的例子。

m_reader.setPort(info);if(m_reader.open(QIODevice::ReadWrite)){qDebug() << "m_reader.open(QIODevice::ReadWrite)";m_reader.setBaudRate(QSerialPort::Baud9600);m_reader.setParity(QSerialPort::NoParity);m_reader.setDataBits(QSerialPort::Data8);m_reader.setStopBits(QSerialPort::OneStop);m_reader.setFlowControl(QSerialPort::NoFlowControl);m_reader.clearError();m_reader.clear();connect(&m_reader, SIGNAL(readyRead()), this, SLOT(readyReadSlot()));}void Dialog::readyReadSlot(){qDebug() << "x";QByteArray arr = m_reader.readAll();do_something(arr);}

版权声明:本文为博主原创文章,未经博主允许不得转载。

一切伟大的行动和思想,都有一个微不足道的开始

Qt 串口类QSerialPort 使用笔记

相关文章:

你感兴趣的文章:

标签云: