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

来源:互联网 发布:村山富市 知乎 编辑:程序博客网 时间:2024/06/04 18:23

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

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

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

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

#include <QtSerialPort/QSerialPort>#include <QtSerialPort/QSerialPortInfo>


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

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个字节

1 0
原创粉丝点击