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

来源:互联网 发布:mac优酷没有弹幕 编辑:程序博客网 时间:2024/05/20 18:49

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

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

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

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

[cpp] view plain copy
  1. #include <QtSerialPort/QSerialPort>  
  2. #include <QtSerialPort/QSerialPortInfo>  


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

[cpp] view plain copy
  1. QSerialPort  *my_serialport=new  QSerialPort;  

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

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

关闭串口:

[cpp] view plain copy
  1. my_serialport->close();  

读取缓冲区的数据:

[cpp] view plain copy
  1. QByteArray requestData=my_serialport->readAll();  

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

[cpp] view plain copy
  1. if(my_serialport->waitForReadyRead(5))//等待是否有5个字节  
原创粉丝点击