Qt 串口通信程序全程图文是本文介绍的内容,本节也是最后一节,本节主要讲述的是解决一下重要问题的说明:

(下面所说的第一个程序是指第一节中写的那个程序,第二个程序是指第三节更改完后的程序,第三个程序是指第四节更改完后的程序。)

问题一:更改第一个程序中的代码。

  1. struct PortSettings myComSetting = {BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,500};
  2. myCom = new Win_QextSerialPort("com1",myComSetting,QextSerialBase::EventDriven);

这两行代码如果换为下面一行:

  1. myCom = new Win_QextSerialPort("com1",QextSerialBase::EventDriven);

你再运行一下程序,是不是还能用?那是说明我们的串口设置的结构体myComSetting没有用吗?你可以把上面的结构体里的波特率由9600改为115200,如果这个结构体有用,那么程序不可能再接收到数据,不过,你再运行一下程序,是这样吗?

如此看来,我们对串口进行的设置果真没用,那默认的串口设置是什么呢?我们先看下一个问题。

问题二:同时打开第三个程序和第二个程序。

(注意:两个程序的串口不能同时打开,所以打开一个程序的串口时要将另一个程序的串口关闭。)

我们先在第三个程序上按默认设置打开串口,发送数据1。然后关闭串口,在第二个程序上打开串口,发送数据1。可以看到两个程序上接受到的信息都正确。如下图。

我们关闭第二个程序上的串口,再将第三个程序上设置为奇校验,然后打开串口,发送数据1,可以看到其收到的数据显示乱码。这时我们关闭第三个程序上的串口,打开第二个程序上的串口,发送数据1,你会惊奇地发现,它收到的信息也是乱码。如下图。

这到底是怎么回事呢?我们也可以去网上下载其他的串口助手进行实验,也可以改变波特率进行实验。由所有的结果得出的结论只能是:我们用那个结构体作为参数传过去后,并没有对串口进行设置,而程序运行使用的串口设置是系统以前保留的设置。那么,为什么会这样呢?我们看下面的一个问题。

问题三:更改第三个程序中的代码。

  1. myCom ->open(QIODevice::ReadWrite);

放到设置串口的语句之后,

  1. connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));

这句之前,然后再运行程序。你会发现程序的串口设置功能已经不起作用了。现在知道原因了吧?!

其实,上面的三个问题是一个问题,它的结论是,写串口程序时,要先打开串口再对它进行设置,不然设置就不会起作用。所以,这里应该说明,第一个和第二个程序都是不太正确的,正确的方法应该是像第三个程序一样,先定义Win_QextSerialPort类对象,然后打开串口,再用那几个设置函数对串口进行设置。

到这里,整篇文章就结束了。对于其中的一些问题也只是我个人的观点,由于水平有限,所以理解上可能会有偏差,或者错误,还请广大网友批评指正。我写这篇文章的目的只是想让Qt初学者能更轻松的用Qt写出串口通信程序,及掌握Qt写程序时的一些技巧。如果你从我的文章中学到了一个知识点,那么我的这篇文章就有它的意义了。

最后,如果你喜欢我的写作风格,并且初学Qt,可以在我的空间查看Qt Creator系列教程,希望能对你的入门有所帮助。

到这里可以下载本文的PDF文档:http://download.csdn.net/source/1763251

详解 Qt 串口通信程序全程图文 (5)相关推荐

  1. qt linux 串口eventdriven,详解 Qt 串口通信程序全程图文 (1)

    Qt 串口通信程序全程图文 是本文介绍的内容,在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类.我们可以去 http://sourc ...

  2. 详解 Qt 串口通信程序全程图文 (4)

    Qt 串口通信程序全程图文是本文介绍的内容,本文一开始先讲解对程序的改进,在文章最后将要讲解一些重要问题. 1.在窗口中加入一些组合框Combo Box,它们的名称及条目如下: 串口:portName ...

  3. 详解 Qt 串口通信程序全程图文 (3)

    Qt 串口通信程序全程图文是本文要介绍的内容,下面的程序在第一部分中所写的程序上进行了一些改进.加入打开和关闭串口,发送数据等功能. 1.加入了"打开串口","关闭串口& ...

  4. 详解 Qt 串口通信程序全程图文 (2)

    Qt 串口通信程序全程图文是本文介绍的内容,上一部分中已经介绍了实现最简单的串口接收程序的编写,下面将对程序内容进行分析. 1.首先应说明操作串口的流程 步骤一:设置串口参数,如:波特率,数据位,奇偶 ...

  5. 详解 Qt 串口通信程序全程图文 (1)

    Qt 串口通信程序全程图文 是本文介绍的内容,在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类.我们可以去 http://sourc ...

  6. 【转】Qt编写串口通信程序全程图文讲解

    Qt编写串口通信程序全程图文讲解 本文章原创于www.yafeilinux.com 转载请注明出处. (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或 ...

  7. win Qt qextserialport 编写串口通信程序全程图文讲解

    转:http://blog.csdn.net/u010580186/article/details/51595227 (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果 ...

  8. Qt编写串口通信程序全程图文讲解

    (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动.) 在Qt中并没有特定的串口控制类,现在大部分人使用的是第三 ...

  9. 【转】Qt串口通信专题教程

    查看以前的教程:Qt编写串口通信程序全程图文讲解 查看Wincom和Lincom介绍:Qt跨平台串口通信软件Wincom与Lincom 下载软件,文档和源码:资源下载 --------------20 ...

最新文章

  1. (转载)Python数据分析之pandas学习
  2. 【深度学习】基于区域生长的图像分割算法!
  3. WebRTC:并非解决音视频应用所有问题的银弹
  4. CSS Grid布局(3)
  5. C++类型萃取之type_traits和type_info
  6. 字节跳动28岁程序员退休:我只想做一个自由的“废物”
  7. 如何在JSP里添加删除cookie
  8. Classic Poems ----Tagore, Stray birds
  9. 点击area不出现黑框_一切小黑屋,都能被黑框玻璃门治愈 | 附安装法则
  10. Qt5.14.2安装、配置及测试(Win10)
  11. 计算机三级网络技术上机,计算机三级网络技术上机部分(南开100题题库)
  12. PCI-E x1/x4/x8/x16四种插槽区别是什么?具体有什么作用?
  13. 中兴新支点操作系统_中兴新支点国产操作系统体验报告:使用流畅,性能稳定!...
  14. 西安电子科技大学超级计算机,西安电子科技大学超级计算机投入使用
  15. excel多个工作表汇总怎么做?
  16. oracle 数据库导入导出文章
  17. react navigation 中使用goBack()跳转到指定页面
  18. numpy.insert用法以及内插插0的方法
  19. Matlab调用百度API画地图讲解教程
  20. python 峰_python-如何在具有多个峰的数据集中查找FWH...

热门文章

  1. gvim最简化设置,去掉工具栏和菜单栏
  2. 关于linux系统端口查看和占用的解决方案
  3. IaaS, PaaS和SaaS及其区别
  4. MySQL里的日期技巧
  5. 从零开始学MVC3——创建项目
  6. word2003插入页码
  7. WebbUpload上传组件(cnblog 一位网友写的)
  8. ssh 免密登录并用脚本群起服务
  9. Java调用Lua脚本(热载实现)
  10. MySQL 查询部门人数大于2的员工信息