网站首页 > 技术文章 正文
在与硬件进行通信时,需要通过com口来进行与硬件的通讯,但是在qt中没有自动添加关于端口的包,因此需要自行添加。
第一步 在项目中的.pro文件中添加下面这句话
QT += serialport
第二步 包含关于端口的头文件 这两个头文件都必须同时存在。
QSerialPort:这个类的主要作用是提供访问端口的功能,在使用端口之前必须先实例化一个QSerialPort类,再通过这个实例化的对象进行配置参数等等。
QSerialPortInfo:最为重要的是QSerialPortInfo 这个类,在这个类里面包含很多和串口有关的变量和方法,就是为了方便Qt程序员进行Qt开发。就像获取系统中的所有端口,以及每个端口所对应的名称,都是通过这个类进行的。他说存储的端口信息主要包括端口号(com),系统的位置,以及串口类型,厂商等信息
QT技术文章推荐:Qt开发进阶技术栈学习路线和资料
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
QList<QSerialPortInfo> listPort = QSerialPortInfo::availablePorts();
for (int i = 0; i < listPort.size(); i++)
{
QSerialPortInfo stInfo = listPort[i];
QString qsPortName = stInfo.portName();
qDebug()<<qsPortName;
ui->comboBox->addItem(qsPortName);
}
QSerialPortInfo::availablePorts() 是自带的获取端口的函数,他的返回值是将所有的端口一次返回,可以使用QList,通过链表的方式来存储返回的端口,也可以用循环的方式来存储
foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
{
QSerialPort serial;
serial.setPort(info);
}
最后 comboBox->addItem(qsPortName) 将端口号存储到一个下拉列表中。
结果展示:
**QSerialPort** 类主要是提供了一些对端口操作的各种接口。但是他也有特别指出,他可以设置为仅读模式
SerialPort.open(QIODevice::ReadOnly);//打开串口,并设置串口为只读模式
SerialPort.setBaudRate(QSerialPort::Baud115200);//设置串口波特率(9600)
SerialPort.setDataBits(QSerialPort::Data8);//设置数据位(8)
SerialPort.setParity(QSerialPort::NoParity); //设置奇偶校检(无)
SerialPort.setStopBits(QSerialPort::OneStop);//设置停止位(一位)
猜你喜欢
- 2024-09-22 Qt 串口通信 QSerialPort
- 2024-09-22 Qt编写控件属性设计器8-网络采集
- 2024-09-22 同一个类,不同代码,Qt 串口类QSerialPort 与各种外设通讯处理
- 2024-09-22 QT串口 QSerialPort类的使用
- 2024-09-22 双手撸码20+天,串口软件(visual-serial)终于有了基本雏形
- 2024-09-22 Qt5.8中串口类QSerialPort
- 2024-09-22 Qt中如何使用QSerialPort进行串口通信
- 2024-09-22 Qt 串口通信接收数据不完整,怎么解决?
- 2024-09-22 Qt编写控件属性设计器7-串口采集
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)