自学Qt之路——串口编程(使用自带Qt库)

之前学习嵌入式驱动,做一个红外摄像头的项目,在操作系统之上直接操作LCD显示屏,显示图像。后来听说Qt能够跨平台,跨windowAndroidLinux三个平台,而且做项目必须有个图形界面,看起来高大上。之后根据这个项目需要,自学Qt5.6,写个博客记录一下自己学习过程。

之前看过Qt的基本操作,一些类的用法,还有信号与槽的机制。

开始着手项目,首先是串口通信。通过万能的度娘,发现编写串口通信,有两种方法:

一是QT本身自带的模块,QSerialPort库和QSerialPortInfo库,在相应的头文件加上这两个库:

#include 
#include 


在头文件中声明私有对象:

QSerialPort  *my_serialport=new  QSerialPort;

在函数中开始设置串口的各种参数:

my_serialport->setPortName(portnum);//设置串口名字,可以换成(“COM4”)
my_serialport->open(QIODevice::ReadWrite);//以读写的方式打开串口
my_serialport->setBaudRate(QSerialPort::Baud115200,QSerialPort::AllDirections);//设置波特率
my_serialport->setDataBits(QSerialPort::Data8);//设置传输数据位,设为8位
my_serialport->setParity(QSerialPort::NoParity);//设置没有校验位
my_serialport->setStopBits(QSerialPort::OneStop);//设置一位停止位
my_serialport->setFlowControl(QSerialPort::NoFlowControl);//设置没有数据流控制

关闭串口:

my_serialport->close();

读取缓冲区的数据:

QByteArray requestData=my_serialport->readAll();

等待缓冲区有几个字节再读取:

if(my_serialport->waitForReadyRead(5))//等待是否有5个字节

你可能感兴趣的:(Qt)