Qt从零开始制作串口调试助手-(第九章、串口读数据实现)-Creator_Ly

第九章、串口读数据实现

说明:

在上一章节的添加的串口数据读取连接语句中,有提到ReadMyCom()为串口读函数,这里将实现串口读函数的内容。


1、在ComDialog.h中添加读取串口数据函数声明


2、在ComDialog.c中添加读取串口数据函数


3、在实现读取串口数据函数的时刻,我们需要提前考虑一些需要定义/实现的地方。

    在第二章“主窗口控件添加”的时候,我们可以看到在数据接收窗口有“十六进制复选框”、保存、停止、清除、显示文本框等。

    但是这些控件都在mainwindow.ui中,我们在ComDialog.c中是无法调用到的,我们需要通过标志位、虚函数等一些方法来实现这些控件的调用等。


4、创建文件夹E:\Qt_Workspace\UartAssistant\UartAssistant\User。

5、右击项目选择新建C++类。


6、进行如下填写,将路径选择为刚才所创建的User文件夹,点击下一步。


7、点击完成。


8、可以看到工程中多了Combase.cpp和Combase.h两个源文件。


9、在Combase.h中添加十六进制发送和十六进制接收的标志位,如下:


10、在Combase.cpp中添加初始化。


11、在Combase,h中添加Combase的头文件和声明,这样ComDialog.cpp就能调用Combase.h中定义的全局变量了。



12、在ComDialog.h中添加ui_mainwindow的头文件和声明,并将main资源与com资源关联,这样ComDialog.cpp就能调用mainwindow.ui中的控件了。

 


 

13、读取串口数据函数可以分为三个步骤来实现,即数据读取、数据转化、数据显示,如下:


14、将bool ComDialog::WorkOpen()函数下添加串口成功开启,在主界面显示“串口已开启”。


15、运行一遍,看其效果是否正确。


设置好参数,打开串口,即可观察到可以接收数据并提示“串口已开启”。

   到此子界面响应添加完成!

                                                                          Creator_Ly

                                                                          2015-11-15

与硬件通信的程序基本上要用到串口,虽然qt5以后集成了串口通信类,但是个人觉得那个串口通信类有点问题,在linux上表现很好,windows上大数据会有怪怪的问题出现,而且只能在qt5以上的版本才能用,无奈大部分的嵌入式linux上还停留在4.7.1到4.8.5左右的版本,所以本人一直喜欢用第三方的串口通信类做处理。 程序调试中经常需要串口调试,甚至还需要模拟设备数据回复,甚至串口转网络出去,特意将这些常用功能都做到一个串口调试助手中去。 基本功能: 1:支持16进制数据发送与接收。 2:支持windows下COM9以上的串口通信。 3:实时显示收发数据字节大小以及串口状态。 4:支持任意qt版本,亲测4.7.0 4.8.5 4.8.7 5.4.1 5.7.0 5.8.0。 5:支持串口转网络数据收发。 高级功能: 1:可自由管理需要发送的数据,每次只要从下拉框中选择数据即可,无需重新输入数据。 2:可模拟设备回复数据,需要在主界面开启模拟设备回复数据。当接收到设置好的指令时,立即回复设置的回复指令。例如指定收到0x16 0x00 0xFF 0x01需要回复0x16 0x00 0xFE 0x01,则只需要在SendData.txt中添加一条数据16 00 FF 01:16 00 FE 01即可。 3:可定时发送数据和保存数据到文本文件:,默认间隔5秒钟,可更改间隔时间。 4:在不断接收到大量数据时,可以暂停显示数据来查看具体数据,后台依然接收数据但不处理,无需关闭串口来查看已接收到的数据。 5:每次收到的数据都是完整的一条数据,而不是脱节的,做了延时处理。 6:一套源码随处编译,无需更改串口通信类,已在XP/WIN7/UBUNTU/ARMLINUX系统下成功编译并运行。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值