QT5 串口操作

Qt5 提供了两个类用于串口操作,分别是:QSerialPort和QSerialPortInfo。

最基本的操作示例代码如下:

 1 #ifndef DIALOG_H
 2 #define DIALOG_H
 3
 4 #include <QDialog>
 5
 6 #include <QDebug>
 7 #include <QSerialPort>
 8 #include <QSerialPortInfo>
 9
10 namespace Ui {
11 class Dialog;
12 }
13
14 class Dialog : public QDialog
15 {
16     Q_OBJECT
17
18 public:
19     explicit Dialog(QWidget *parent = 0);
20     ~Dialog();
21
22     QSerialPort m_Serail;
23
24 private slots:
25     void myRecvData();
26
27 private:
28     Ui::Dialog *ui;
29 };
30
31 #endif // DIALOG_H
 1 #include "dialog.h"
 2 #include "ui_dialog.h"
 3
 4 Dialog::Dialog(QWidget *parent) :
 5     QDialog(parent),
 6     ui(new Ui::Dialog)
 7 {
 8     ui->setupUi(this);
 9
10     QSerialPortInfo serPortInfo;
11     foreach(const QSerialPortInfo &serInfo,QSerialPortInfo::availablePorts())
12     {
13         qDebug() << "Name: " << serInfo.portName();
14         qDebug() << "Description: " << serInfo.description();
15         qDebug() << "Manufacturer: " << serInfo.manufacturer();
16         qDebug() << "Serial Number: " << serInfo.serialNumber();
17         qDebug() << "System Location: " << serInfo.systemLocation();
18         serPortInfo = serInfo;
19     }
20     m_Serail.setPort(serPortInfo);
21     if(m_Serail.open(QIODevice::ReadWrite))
22     {
23         qDebug() << "m_Serail.open(QIODevice::ReadWrite)";
24         m_Serail.setBaudRate(QSerialPort::Baud115200);
25         m_Serail.setParity(QSerialPort::NoParity);
26         m_Serail.setDataBits(QSerialPort::Data8);
27         m_Serail.setStopBits(QSerialPort::OneStop);
28         m_Serail.setFlowControl(QSerialPort::NoFlowControl);
29
30         m_Serail.clearError();
31         m_Serail.clear();
32         connect(&m_Serail, SIGNAL(readyRead()), this, SLOT(myRecvData()));
33     }
34 }
35
36 Dialog::~Dialog()
37 {
38     delete ui;
39 }
40
41 void Dialog::myRecvData()
42 {
43     QByteArray arr = m_Serail.readAll();
44     if(NULL != arr)
45     {
46         ui->logEdit->append(tr(arr));
47         arr.clear();
48     }49 }
时间: 2024-12-23 19:10:28

QT5 串口操作的相关文章

Qt5串口编程详解【新版】

Qt5的串口比Qt4的好用得多,Qt4的貌似没有集成官方库. 之前我也写过Qt5的串口,不过有一些缺陷,这次试图改进.转载请保留链接:http://blog.csdn.net/qq363692146/article/details/26049355 本文发表于2014.5.17. 如果在linux下,记得使用root权限,可以用root权限打开可执行文件,或者用root权限打开Qt Creator.(原因是串口常常需要特权,有些串口有特权也只能度而不能写,这个可能是Qt本身的问题)[至于安卓端,

V-rep学习笔记:串口操作

VREP Regular API提供了串口操作的相关函数,可以对串口进行打开.关闭和读写: 下面使用一款淘宝上常见的AHRS(Attitude and heading reference system,航姿参考系统)模块来驱动VREP中的虚拟模型,控制其姿态.VREP通过串口读取传感器实时发送的数据并进行解析. 传感器通过串口发送2种数据: 解算后的姿态角和气压高度等数据 原始的传感器ADC数据(直接从传感器读取出来的测量值,没有经过解算处理) 下面是VREP中以16进制显示的接收到的串口数据:

MATLAB串口操作和GUI编程

简单的MATLAB GUI编程和串口控制.Word编辑,如需PDF版本,请留言.说实话这个挺难看的……     概述 本文介绍了程序AD9512_Serial_GUI的编程思路和功能.该程序设计到MATLAB的图像用户界面编程的基本方法和串口的基本操作.程序目的在于通过串口写控制字对AD9512进行配置(AD9512通过SPI写入寄存器,本程序只是整个控制程序中的一部分). 修订历史 以下表格展示了本文档的修订过程 日期 版本号 修订内容 2015/01/15 V0.0 初始版本,试验版[1]

Android串口操作,简化android-serialport-api的demo(转载)

原帖地址:点击打开 最近在做android串口的开发,找到一个开源的串口类android-serialport-api.其主页在这里http://code.google.com/p/android-serialport-api/  ,这里可以下到APK及对源码. 但是下载源码之后发现源码不能直接使用,而且源码结构较为复杂.关于串口的操作不外乎几步: 1.打开串口(及配置串口): 2.读串口: 3.写串口: 4.关闭串口. android-serialport-api的代码使用了继承等复杂的行为,

C#异步数据接收串口操作类

C#异步数据接收串口操作类 使用C#调用传统32位API实现串口操作,整个结构特别的简单.接收数据只需要定义数据接收事件即可. 上传源代码我不会,需要源代码的请与我([email protected])联系.你也可以教我怎么上传源代码. using System; using System.Runtime.InteropServices; /// <summary> /// (C)2003-2005 C2217 Studio  保留所有权利 /// /// 文件名称:     IbmsSeri

【转】C# 串口操作系列(3) -- 协议篇,二进制协议数据解析

我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要关心我们的通讯协议如何缓存,分析,以及通知界面. 我们先说一下通讯协议.通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可能的简单以提高传输率,尽可能的具有安全性保证数据传输完整正确.基于这2点规则,我们一个通讯协议应该是这样的:头+数据长度+数据正文+校验 例如:AA 44 05 01 02 03 04 05 EA 这里我假设的一条数据,协议如下: 数据头:     AA 44 数据长度: 05 数据

【转】C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。

我假设读者已经了解了c#的语法,本文是针对刚打算解除串口编程的朋友阅读的,作为串口编程的入门范例,也是我这个系列的基础. 我们的开发环境假定为vs2005(虽然我在用vs2010,但避免有些网友用2005,不支持lambda,避免不兼容,就用2005来做例子) 一个基本的串口程序,既然是个程序了.我们就先从功能说起,包含 串口选择 波特率选择 打开 关闭 接受数据显示 发送数据输入 发送数据 数据量提示以及归零 好吧,有了这些功能,我们就先画出界面.例如: 这里,波特率就定死几种好了.直接界面上

C# 串口操作系列(3) -- 协议篇,二进制协议数据解析

C# 串口操作系列(3) -- 协议篇,二进制协议数据解析 标签: c#bufferobject通讯byte硬件驱动 2010-05-27 09:54 51565人阅读 评论(215) 收藏 举报  分类: 通讯类库设计(4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要关心我们的通讯协议如何缓存,分析,以及通知界面. 我们先说一下通讯协议.通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可

C# 串口操作系列(4) -- 协议篇,文本协议数据解析

C# 串口操作系列(4) -- 协议篇,文本协议数据解析 标签: c#uiobjectstringbyte 2010-06-09 01:50 19739人阅读 评论(26) 收藏 举报  分类: 通讯类库设计(4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 上一篇已经介绍了协议的组成,一个协议,一般具有 :协议头+长度+数据+校验 , 文本格式可以直观的定义回车换行是协议的结尾,所以我们可以省略数据长度,增加协议尾.即: 协议头 + 数据 + 校验 + 数据尾 . 文本方式的数据比