Qt编写串口通信程序

合集下载

Qt下实现多线程的串口通信

Qt下实现多线程的串口通信

Qt下实现多线程的串⼝通信简述Qt下⽆论是RS232、RS422、RS485的串⼝通信都可以使⽤统⼀的编码实现。

本⽂把每路串⼝的通信各放在⼀个线程中,使⽤movetoThread的⽅式实现。

代码之路⽤SerialPort类实现串⼝功能,Widget类调⽤串⼝。

serialport.h如下#include <QObject>#include <QSerialPort>#include <QString>#include <QByteArray>#include <QObject>#include <QDebug>#include <QObject>#include <QThread>class SerialPort : public QObject{Q_OBJECTpublic:explicit SerialPort(QObject *parent = NULL);~SerialPort();void init_port(); //初始化串⼝public slots:void handle_data(); //处理接收到的数据void write_data(); //发送数据signals://接收数据void receive_data(QByteArray tmp);private:QThread *my_thread;QSerialPort *port;};serailport.cpp如下#include "serialport.h"SerialPort::SerialPort(QObject *parent) : QObject(parent){my_thread = new QThread();port = new QSerialPort();init_port();this->moveToThread(my_thread);port->moveToThread(my_thread);my_thread->start(); //启动线程}SerialPort::~SerialPort(){port->close();port->deleteLater();my_thread->quit();my_thread->wait();my_thread->deleteLater();}void SerialPort::init_port(){port->setPortName("/dev/ttyS1"); //串⼝名 windows下写作COM1port->setBaudRate(38400); //波特率port->setDataBits(QSerialPort::Data8); //数据位port->setStopBits(QSerialPort::OneStop); //停⽌位port->setParity(QSerialPort::NoParity); //奇偶校验port->setFlowControl(QSerialPort::NoFlowControl); //流控制if (port->open(QIODevice::ReadWrite)){qDebug() << "Port have been opened";}else{qDebug() << "open it failed";}connect(port, SIGNAL(readyRead()), this, SLOT(handle_data()), Qt::QueuedConnection); //Qt::DirectConnection }void SerialPort::handle_data(){QByteArray data = port->readAll();qDebug() << QStringLiteral("data received(收到的数据):") << data;qDebug() << "handing thread is:" << QThread::currentThreadId();emit receive_data(data);}void SerialPort::write_data(){qDebug() << "write_id is:" << QThread::currentThreadId();port->write("data", 4); //发送“data”字符}widget.h的调⽤代码#include "serialport.h"public slots:void on_receive(QByteArray tmpdata);private:SerialPort *local_serial;widget.cpp调⽤代码//构造函数中local_serial = new SerialPort();connect(ui->pushButton, SIGNAL(clicked()), local_serial, SLOT(write_data()),Qt::QueuedConnection);connect(local_serial, SIGNAL(receive_data(QByteArray)), this, SLOT(on_receive(QByteArray)), Qt::QueuedConnection);//on_receive槽函数void Widget::on_receive(QByteArray tmpdata){ui->textEdit->append(tmpdata);}写在最后本⽂例⼦实现的串⼝号是 /dev/ttyS1(对应windows系统是COM1⼝),波特率38400,数据位8,停⽌位1,⽆校验位的串⼝通信。

Qt串口通信编程开发环境配置

Qt串口通信编程开发环境配置

Qt串口通信编程开发环境配置目录1 开发环境 (1)1.1 编程环境 (1)1.2 工程设置 (1)1.3 调试窗口设置 (2)1.4 依赖库 (2)1.5 源代码的适配 (2)2 运行及硬件环境 (3)2.1 串口设备 (3)2.2 虚拟串口工具 (3)2.3 串口调试助手 (3)2.4 运行支持文件 (3)3 第三方串口库的生成 (4)3.1 打开源码里的工程 (4)3.2 qextserialport源码问题解决 (4)4 故障解决 (5)4.1 转到槽函数失败 (5)积分下载本文档可免费提供技术支持。

1 开发环境1.1 编程环境工程采用Windows系统下的Qt Creator开发环境,Qt版本5.10.1(Qt的较新版,Bug 较少,支持串口库,图形库QChart),安装文件qt-opensource-windows-x86-5.10.1.exe安装的编译器采用MinGW32. 。

MARK32000-采用的串口时Qt自带串口库QSerialPort,若需第三方串口库可自行编译。

1.2 工程设置工程设置:在XXXX.pro文件中添加下面两行:QT += serialport #添加Qt串口支持CONFIG += console #显示控制台提示窗口,以方便调试,注释掉即可不显示黑色命令提示框如果采用第三方的串口库(本软件不含第三方库源代码),而不采用Qt的串口库,则要添加如下工程:INCLUDEPATH += qextserialport-1.2win-alphaLIBS += -L "../SerialProtocol/qextserialport-1.2win-alpha/build/" -lqextserialportd若路径找不到,可改成绝对路径。

相对路径基于项目生成的build路径,需要将第三方串口库“qextserialport”的生成文件“build”目录下的qextserialportd.a .dll拷贝到build-SerialProtocol-Desktop_Qt_5_10_1_MinGW_32bit-Debug目录下。

Qt编写串口通信程序全程图文讲解(大图版)

Qt编写串口通信程序全程图文讲解(大图版)

Qt编写串口通信程序全程图文讲解(一)(原创)首先说明我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动。

在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport 类,我们这里也是使用的该类。

我们可以去/projects/qextserialport/files/进行下载,也可以去下载论坛上的/bbs/read.php?tid=22847下载到的文件为:qextserialport-1.2win-alpha.zip其内容如下图:我们在windows下只需要使用其中的6个文件:qextserialbase.cpp和qextserialbase.h,qextserialport.cpp和qextserialport.h,win_qextserialport.cpp和win_qextserialport.h如果在Linux下只需将win_qextserialport.cpp和win_qextserialport.h 换为posix_qextserialport.cpp和posix_qextserialport.h即可。

下面我们将讲述详细编程过程,这里我们先给出完整的程序,然后再进行逐句分析。

1.打开Qt Creator,新建Qt4 Gui Application,工程名设置为mycom,其他使用默认选项。

(注意:建立的工程路径不能有中文。

)2.将上面所说的6个文件复制到工程文件夹下,如下图。

3.在工程中添加这6个文件。

在Qt Creator中左侧的文件列表上,鼠标右击工程文件夹,在弹出的菜单中选择Add Existing Files,添加已存在的文件。

如下图:选择工程文件夹里的那6个文件,进行添加。

如下图。

添加好后文件列表如下图所示:4.点击mainwindow.ui,在窗口上加入一个Text Browser,用来显示信息。

Qt中的串口编程

Qt中的串口编程

Qt中的串⼝编程串⾏接⼝简称串⼝,也称串⾏通信接⼝或串⾏通讯接⼝(通常指COM接⼝),是采⽤串⾏通信⽅式的扩展接⼝。

串⾏接⼝(Serial Interface) 是指数据⼀位⼀位地顺序传送,其特点是通信线路简单,只要⼀对传输线就可以实现双向通信,⼤⼤降低了成本,特别适⽤于远距离通信,但传送速度较慢。

根据信息的传送⽅向,串⾏通讯可以进⼀步分为单⼯、半双⼯和全双⼯三种。

串⾏接⼝按电⽓标准及协议来分包括RS-232-C、RS-422、RS485等。

异步串⾏是指UART(Universal Asynchronous Receiver/Transmitter),通⽤异步接收/发送。

UART包含TTL电平的串⼝和RS232电平的串⼝。

TTL电平是3.3V的,⽽RS232是负逻辑电平,它定义+5~+12V为低电平,⽽-12~-5V为⾼电平。

UART作为异步串⼝通信协议的⼀种,⼯作原理是将传输数据的每个字符⼀位接⼀位地传输,其中各位的意义如下:起始位:先发出⼀个逻辑”0”的信号,表⽰传输字符的开始。

数据位:紧接在起始位之后,数据位的个数可以是4、5、6、7、8等,构成⼀个字符,从最低位开始传送,靠时钟定位。

奇偶校验位:数据位加上这⼀位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。

停⽌位:它是⼀个字符数据的结束标志,可以是1位、1.5位、2位的⾼电平。

由于数据是在传输线上定时的,并且每⼀个设备有其⾃⼰的时钟,很可能在通信中两台设备间出现了⼩⼩的不同步。

因此停⽌位不仅仅是表⽰传输的结束,并且提供计算机校正时钟同步的机会。

适⽤于停⽌位的位数越多,不同时钟同步的容忍程度越⼤,但是数据传输率同时也越慢。

空闲位:处于逻辑“1”状态,表⽰当前线路上没有数据传送。

此外,在异步通信中还有⼀个重要的参数,即波特率,它是衡量数据传送速率的指标,表⽰每秒钟传送的符号数(symbol)。

收发双⽅的波特率必须保持⼀致,才能保证数据的正常通信。

基于Windows下Qt与脉冲发生器的串口通讯实现

基于Windows下Qt与脉冲发生器的串口通讯实现

确定串口参数: 波特率、数据 位、停止位、
校验位等
打开串口:使 用Qt的串口类 QSerialPort
打开串口
配置串口参数: 设置串口的波 特率、数据位、 停止位、校验
位等
编写串口通讯 程序:发送和 接收脉冲发生
器的数据
串口数据读取与解析
数据解析:根据协议对读取 的数据进行解析,提取有效 信息。
读取串口数据:使用Qt的串 口通信类,从脉冲发生器串 口读取数据。
数据处理:对解析后的数据 进行处理,如滤波、去噪等。
数据传输:将处理后的数据 通过Qt应用程序进行展示或
传输给其他设备。
串口数据发送与控制脉冲发生器
串口数据发送:通过Qt应用程序将数据发送到串口,实现与脉冲发生器的通讯。
控制脉冲发生器:通过串口接收到的数据来控制脉冲发生器的输出,实现脉冲信号的生成与控 制。
未来研究方向与应用前景
研究方向:优化 串口通讯协议, 提高数据传输效 率和稳定性
研究方向:拓展 Qt与脉冲发生器 的应用领域,如 医疗、工业自动 化等
应用前景:Qt与 脉冲发生器的串 口通讯技术将广 泛应用于各种领 域,提高生产和 生活水平
应用前景:随着 技术的不断进步, Qt与脉冲发生器 的串口通讯技术 将迎来更加广阔 的发展空间
生器的串口通讯实现
06 安 全 与 可 靠 性 考 虑
Part One
单击添加章节标题
Part Two
Qt串口通讯基础
Qt串口通讯模块介绍
串口通讯概述:串口通讯是一种常见的通讯方式,通过串口可以实现计 算机与其他设备之间的数据传输。
Qt串口通讯模块:Qt提供了一个串口通讯模块,该模块提供了丰富的 API,可以方便地实现串口通讯功能。

qserialport高级编程

qserialport高级编程

qserialport高级编程QSerialPort是Qt框架中用于串口通信的类,它提供了一种方便的方式来在Qt应用程序中进行串口通信。

在进行QSerialPort高级编程时,我们可以从以下几个方面来全面了解和使用它:1. 打开和关闭串口,使用QSerialPort类可以很容易地打开和关闭串口。

在打开串口时,我们可以设置串口的参数,如波特率、数据位、停止位和校验位等。

而在关闭串口时,我们需要确保在不需要使用串口时及时关闭,以释放资源。

2. 读写数据,QSerialPort类提供了read和write方法来进行数据的读取和写入。

在高级编程中,我们可以通过设置超时时间、使用信号槽机制等方式来确保数据的稳定和准确的读写。

3. 错误处理,在串口通信中,可能会出现各种错误,如串口无法打开、数据传输超时、校验错误等。

在高级编程中,我们需要考虑如何处理这些错误,可以通过捕获错误码、设置错误处理策略等方式来保证程序的稳定性和可靠性。

4. 事件驱动,QSerialPort类支持事件驱动的串口通信,我们可以利用信号槽机制来处理串口事件,比如数据到达事件、错误事件等。

在高级编程中,我们可以充分利用事件驱动的特性来实现更加灵活和高效的串口通信。

5. 跨平台兼容性,Qt框架具有良好的跨平台兼容性,因此使用QSerialPort进行高级编程时,可以在不同的操作系统上实现相似的串口通信功能,这为开发者提供了很大的便利。

总之,QSerialPort类提供了丰富的API和功能,可以满足各种复杂的串口通信需求。

在进行高级编程时,我们需要充分了解其特性和用法,从多个角度全面考虑和处理各种情况,以确保程序的稳定性和可靠性。

Qt 串行通讯-16.11.09

Qt 串行通讯-16.11.09

Qt 串行通讯Hanford2016年11月09日目录目录第1章Qt 串行通讯 (1)1.1 配置.pro文件 (1)1.2 查询串口信息 (1)1.3 配置、打开串口 (3)1.4 setRequestToSend在Windows上的BUG (5)1.5 读取串口数据 (6)1.6 发送串口数据 (7)1.7 同步读取 (7)1.8 本文示例代码 (8)1.9 Qt 示例代码 (10)I第1章Qt 串行通讯最近要在Android 手机上开发串行通讯程序,为此学习了一下Qt的串行通讯。

本文中,Qt的版本为 5.7.0。

1.1 配置.pro文件使用Qt 5.7.0 创建“Qt Widgets Application”类型的项目,然后修改.pro 文件,如下图所示:图1.1给变量QT 增加serialport,说明程序里将使用串行通讯相关的类。

1.2 查询串口信息本节将通过代码查找系统里的串口,然后填入下图所示的下拉列表框中。

1图1.2函数QSerialPortInfo::availablePorts 会返回系统所有的串口,它的使用请函数GetIntInStr 根据串口名称(如COM5)获取串口号(如:5),其代码2根据std::map<int,QString> mapPort填充下拉列表框QComboBox cboPort1.3 配置、打开串口34首先new 一个QSerialPort 对象,然后设置该对象的串行通讯参数,最后调用QSerialPort::open 函数打开串口。

这里需要说明一下流控制。

通讯的双方A 和B ,假如A 给B 发送数据时,B 反应过慢,A 不管不顾的不停发送数据,结果会导致数据丢失。

为了防止这种情况发生,可使用流控制(也叫握手)。

软件流控制(XON/XOFF ):通讯的一方(B )如果不能及时处理串口数据,会给对方(A )发送XOFF 字符,对方接收到这个字符后,会停止发送数据;B 不再忙的时候,会给A 发送XON 字符,A 接收到这个字符后,会接着发送数据。

qt串口通信讲义

qt串口通信讲义

qt串口通信讲义摘要:1.QT 串口通信概述2.QT 串口通信的基本步骤3.QT 串口通信的实现方法4.QT 串口通信的注意事项5.总结正文:一、QT 串口通信概述QT 串口通信是指通过串口(RS-232 或者RS-485)在QT 应用程序中实现数据传输的一种通信方式。

串口通信在电子设备、计算机外设、通信设备等领域有着广泛的应用。

QT 作为一款跨平台的C++图形用户界面库,提供了丰富的串口通信功能,使得开发者可以方便地实现串口通信应用。

二、QT 串口通信的基本步骤1.创建串口对象在QT 中,需要先创建一个串口对象,可以使用`QSerialPort`类或者`QSerialPortInfo`类来创建。

其中,`QSerialPort`类用于实现串口通信,而`QSerialPortInfo`类用于获取系统中可用的串口信息。

2.配置串口参数创建串口对象后,需要配置串口的相关参数,例如波特率、数据位、停止位等。

可以使用`QSerialPort`类的相关方法进行配置。

3.开启串口配置好串口参数后,需要调用`QSerialPort`类的`open()`方法开启串口。

在此之前,还可以调用`setReadBufferSize()`和`setWriteBufferSize()`方法设置读写缓冲区大小,以提高通信效率。

4.读写数据开启串口后,可以使用`QSerialPort`类的`readAll()`、`readLine()`或者`readPlainText()`方法读取数据,使用`write()`或者`writePlainText()`方法发送数据。

5.关闭串口通信完成后,需要调用`QSerialPort`类的`close()`方法关闭串口。

三、QT 串口通信的实现方法1.使用`QSerialPort`类`QSerialPort`类提供了一系列的方法来实现串口通信,如上文所述的基本步骤中所示。

2.使用`QSerialPortInfo`类`QSerialPortInfo`类可以用于获取系统中可用的串口信息,然后通过`QSerialPort`类创建串口对象并实现通信。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Qt编写串口通信程序图文详解(说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动。

)在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类。

我们可以去/projects/qextserialport/files/进行下载,也可以去下载我上传到网上的:/bbs/read.php?tid=22847下载到的文件为:qextserialport-1.2win-alpha.zip其内容如下图:我们在windows下只需要使用其中的6个文件:qextserialbase.cpp和qextserialbase.h,qextserialport.cpp和qextserialport.h,win_qextseri alport.cpp和win_qextserialport.h如果在Linux下只需将win_qextserialport.cpp和win_qextserialport.h 换为posix_qextserialpo rt.cpp和posix_qextserialport.h即可。

第一部分:下面我们将讲述编程的详细过程,这里我们先给出完整的程序,然后到第二部分再进行逐句分析。

1.打开Qt Creator,新建Qt4 Gui Application,工程名设置为mycom,其他使用默认选项。

(注意:建立的工程路径不能有中文。

)2.将上面所说的6个文件复制到工程文件夹下,如下图。

3.在工程中添加这6个文件。

在Qt Creator中左侧的文件列表上,鼠标右击工程文件夹,在弹出的菜单中选择Add Existing Files,添加已存在的文件。

如下图:选择工程文件夹里的那6个文件,进行添加。

如下图。

添加好后文件列表如下图所示:4.点击mainwindow.ui,在窗口上加入一个Text Browser,用来显示信息。

如下图。

5.在mainwindow.h的相应位置添加头文件#include "win_qextserialport.h",添加对象声明Win_QextSerialPort *myCom;添加槽函数声明void readMyCom();添加完后,如下图。

6.在mainwindow.cpp的类的构造函数中添加如下语句。

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow){ui->setupUi(this);struct PortSettings myComSetting = {BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF, 500};//定义一个结构体,用来存放串口各个参数myCom = new Win_QextSerialPort("com1",myComSetting,QextSerialBase::EventDriven); //定义串口对象,并传递参数,在构造函数里对其进行初始化myCom ->open(QIODevice::ReadWrite);//以可读写方式打开串口connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));//信号和槽函数关联,当串口缓冲区有数据时,进行读串口操作}在下面添加readMyCom()函数的定义,添加如下代码。

void MainWindow::readMyCom() //读串口函数{QByteArray temp = myCom->readAll();//读取串口缓冲区的所有数据给临时变量tempui->textBrowser->insertPlainText(temp);//将串口的数据显示在窗口的文本浏览器中}添加完代码后如下图。

此时如果运行程序,已经能实现读取串口数据的功能了。

我们将单片机采集的温度信息由串口传给计算机,效果如下图。

这样最简单的串口通信程序就完成了。

可以看到它只需要加入几行代码即可,非常简单。

第二部分:上一部分中已经介绍了实现最简单的串口接收程序的编写,下面将对程序内容进行分析。

1.首先应说明操作串口的流程。

步骤一:设置串口参数,如:波特率,数据位,奇偶校验,停止位,数据流控制等。

步骤二:选择串口,如windows下的串口1为“com1”,Linux下为“ttyS0”等,并打开串口。

步骤三:读或写串口。

步骤四:关闭串口。

(我们上一个程序没有写串口和关闭串口的功能,打开串口也是在构造函数里完成的,因为那只是为了用最简单的方法完成串口程序的编写。

在后面我们将会对它进行修改和完善。

)2.下面我们将按照上面的操作串口的流程,讲解第一个程序的编写。

第一,我们在写程序之前,应该浏览一下那6个文件,大概看一下它们里面都是什么内容,各个文件各个类之间有什么联系。

在win_qextserialport.cpp文件中,我们看它的最后一个构造函数,会发现,串口可以在这里进行初始化。

Win_QextSerialPort::Win_QextSerialPort(const QString & name, const PortSettings& setti ngs, QextSerialBase::QueryMode mode) {Win_Handle=INVALID_HANDLE_VALUE;setPortName(name);setBaudRate(settings.BaudRate);setDataBits(settings.DataBits);setStopBits(settings.StopBits);setParity(settings.Parity);setFlowControl(settings.FlowControl);setTimeout(settings.Timeout_Millisec);setQueryMode(mode);init();}它共有三个参数,其中第一个参数const QString & name,应该是串口的名字,是QString类型,我们可以用串口1即“com1”,不用过多说明。

下面我们主要研究第二个和第三个参数。

第二,我们查看第二个参数的位置。

在Qt Creator的菜单中选择Edit->Find/Replace->All projects,如下图。

在弹出的对话框中输入要查找的内容PortSettings,如下图。

点击Search后,便能在下面显示出整个工程中所有PortSettings的位置。

如下图。

我们点击第一条,可以看到在qextserialbase.h文件中有一个struct PortSettings,如下图。

我们双击这一条,进入相应的文件。

如下图。

struct PortSettings{BaudRateType BaudRate;DataBitsType DataBits;ParityType Parity;StopBitsType StopBits;FlowType FlowControl;long Timeout_Millisec;};可以看到在这个结构体里定义了串口初始化的各个参数,而对于BaudRateType等类型的定义,我们在这个结构体的上面可以看到,它们是多个枚举变量。

如下图。

这时我们便应该明白了,这个结构体便是实现串口参数设置的。

第三,定义串口参数。

BaudRateType BaudRate;波特率设置,我们设置为9600,即程序中用BAUD9600;DataBitsType DataBits;数据位设置,我们设置为8位数据位,即DATA_8;ParityType Parity;奇偶校验设置,我们设置为无校验,即PAR_NONE;StopBitsType StopBits;停止位设置,我们设置为1位停止位,即STOP_1;FlowType FlowControl;数据流控制设置,我们设置为无数据流控制,即FLOW_OFF;long Timeout_Millisec;延时设置,我们设置为延时500ms,即500;这样便写出了程序中的那句:struct PortSettings myComSetting = {BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF, 500};我们定义了一个结构体变量myComSetting,并对其进行了初始化。

第四,设置第三个参数。

我们先按上面的方法找到它的定义位置,在qextserialbase.h中,如下图。

可以看到查询模式也是枚举变量,有两个选项,我们选择第二个EventDriven,事件驱动。

到这里,我们就可以定义Win_QextSerialPort类的变量了,就是那句:myCom = new Win_QextSerialPort("com1",myComSetting,QextSerialBase::EventDriven);它完成了串口的选择和串口的初始化。

第五,写打开串口函数和读串口函数。

查看win_qextserialport.h文件,我们会发现Win_QextSerialPort类继承自QextSerialBase类。

查看qextserialbase.h文件,我们会发现QextSerialBase类继承自QIODevice 类。

我们在Qt的帮助中查看QIODevice 类,如下图。

其部分内容如下图。

可以看到其中有enum OpenModeFlag{ NotOpen, ReadOnly, WriteOnly, ReadWrite, ..., Unbuffered },virtual bool open( OpenMode mode ),QByteArray readA ll()等内容。

而下面的信号函数中有void readyRead();它可以查看串口是否有新的数据传来。

所以,我们可以用这个类里的这些函数操作串口。

如程序中的语句:myCom ->open(QIODevice::ReadWrite);//我们调用了其中的open函数,用ReadWrite可读写的方式进行打开串口,这个open函数//在win_qextserialport.cpp中被重定义了connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));//我们关联信号readyRead(),和自己写的槽函数readMyCom(),当串口有数据传来时进行读串口操作void MainWindow::readMyCom() //自己写的读串口函数{QByteArray temp = myCom->readAll();//我们调用readAll()函数,读取串口中所有数据,在上面可以看到其返回值是QByteArray类型ui->textBrowser->insertPlainText(temp);//调用insertPlainText()函数,是窗口上的文本浏览器中连续输出数据,而不是每次写数据前都清除以前//的数据,可以在Qt的帮助里查看这个函数的说明}这样我们便写完了所有的语句,最后只需要在mainwindow.h文件中加入相应的头文件,对象声明,函数声明即可。

相关文档
最新文档