qt 设置串口起始位_Qt编写串口通信程序全程图文解说

(说明:我们的编程环境是windows xp下,在Qt Creator中进行,假设在Linux下或直接用源代码编写,程序稍有不同,请自己修改。)在Qt中并没有特定的串口控制类,如今大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类。我们能够去进行下载,也能够去下载我上传到网上的:下载到的文件为:qextserialport-1.2win-alpha.zip其内容例如以...
摘要由CSDN通过智能技术生成

(说明:我们的编程环境是windows xp下,在Qt Creator中进行,假设在Linux下或直接用源代码编写,程序稍有不同,请自己修改。)

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

进行下载,也能够去下载我上传到网上的:

下载到的文件为: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,project名设置为mycom,其它使用默认选项。

(注意:建立的project路径不能有中文。)

2.将上面所说的6个文件拷贝到project目录下,例如以下图。

3.在project中加入这6个文件。

在Qt Creator中左側的文件列表上,鼠标右击project目录,在弹出的菜单中选择Add Existing Files,加入已存在的文件。例如以下图:

选择project目录里的那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();

//读取串口缓冲区的全部数据给暂时变量temp

ui->textBrowser->insertPlainText(temp);

//将串口的数据显示在窗体的文本浏览器中

}

加入完代码后例如以下图。

此时假设执行程序,已经能实现读取串口数据的功能了。我们将单片机採集的温度信息由串口传给计算机,效果例如以下图。

这样最简单的串口通信程序就完毕了。能够看到它仅仅须要增加几行代码就可以,很easy。

第二部分:

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

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

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

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

步骤三:读或写串口。

步骤四:关闭串口。

(我们上一个程序没有写串口和关闭串口的功能,打开串口也是在构造函数里完毕的,由于那仅仅是为了用最简单的方法完毕串口程序的编写。在后面我们将会对它进行改动和完好。)

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

第一,我们在敲代码之前,应该浏览一下那6个文件,大概看一下它们里面都是什么内容,各个文件各个类之间有什么联系。在win_qextserialport.cpp文件里,我们看它的最后一个构造函数,会发现,串口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值