1. 设计目的

使用Qt设计一款串口调试助手,具有自动扫描串口端口、列表端口硬件信息、16进制转换、收发数目统计、定时发送等功能。代码注释清晰,应用无内建缓存区,运行效率高,适合拿来学习和作为二次开发的框架。

出于对日后二次开发的考虑,没有对界面做任何的美化,保持着最原始原汁原味的界面,代码逐行注释一看就懂。仅提供了市面上常见的串口助手的基本功能,目标精简、可靠、高效,欢迎各位使用和作为框架进行二次开发,并提出改进意见。

2. 源码下载

我的Qt版本:5.12.9

GitHub源码下载:Qt串口调试助手下载

制作过程和源码讲解,见博客Qt专栏的内容。

更新:后期在原有串口功能上,使用了QCustomPlot绘图库,制作了串口波形绘图上位机,非常适合单片机上传波形进行调试。最多可显示20条曲线,支持滚轮Y轴缩放、左键拖拽。波形帧协议兼容匿名四轴调试上位机,并增加了16进制转换,支持GB2312中文编码。详细介绍见:波形绘图上位机源码下载

3. 成品效果展示

  • 串口列表框,点击时扫描可用端口。
  • 串口列表框,显示端口号的同时,还显示硬件设备信息,便于选择区分。

  • 打开串口后,端口选择框变为灰色不可选,避免误操作。
  • 打开 / 关闭串口,按键翻转。
  • 接收显示优化。(不发生换行,CH340、CP2102多硬件兼容)
  • 收、发数目统计。
  • 定时自动发送。

  • 16进制发送、16进制接收。
  • 格式随意转换,无Bug。

  • 源码讲解、GitHub更新下载,戳左下角链接。

  • 源码内容几乎是逐行注释,不用担心翻帮助文档,一眼就懂。
  • 接收部分没有内建缓存区,运行效率高。

  • 主代码量不超过400行,去除注释,可能只有300左右,便于学习和二次开发。

总结

Qt开发界面简单、高效,可跨平台运行,很值得嵌入式从业者学习。不过对于一些工控应用的开发,不如C#+WinForm生态完善,有些产品仅提供C#的SDK,因为C#的代码量远小于C++,而且背靠 .NET这棵大树好乘凉。真正开发移动端的应用肯定还是安卓那一套,界面好看开发更简便。所以现在学习Qt处于一个十分尴尬的位置,唯一的好处也就是跨平台,而嵌入式开发又暂时没有更好的跨平台取代方案,Qt要学但学了之后意识到应用范围在逐渐变窄。只希望 .NET环境日趋在linux上完善,好让要学习的东西变得少点,头发能多剩点。

【Qt串口调试助手】1.0 - 400行代码撸一个Qt5串口调试助手框架相关推荐

  1. 70行代码撸一个桌面自动翻译神器(采用Markdown格式编写)

    70行代码撸一个桌面自动翻译神器 前言 工作上经常需要与外国友人邮件沟通,奈何工作电脑没有安装有道词典一类的翻译软件,结合自己的需要,自己撸一个桌面翻译神器. 基本思路:基于PySimpleGUI开发 ...

  2. 100行代码撸一个语音对话助手

    前言 之前在CSDN上看到有人用python调用语音api接口实现一个语音对话机器人的功能,于是依葫芦画瓢,按照方法用python撸了一个语音对话助手,并成功在一个linux 智能音箱上应用并实现播报 ...

  3. 70行代码撸一个桌面自动翻译神器

    工作上经常需要与外国友人邮件沟通,奈何工作电脑没有安装有道词典一类的翻译软件,结合自己的需要,自己撸一个桌面翻译神器. 基本思路:基于PySimpleGUI开发桌面GUI→获取键盘输入→接入谷歌翻译A ...

  4. 70行代码撸一个桌面自动翻译神器!

    文 | 咕隆先森 来源:Python 技术「ID: pythonall」 工作上经常需要与外国友人邮件沟通,奈何工作电脑没有安装有道词典一类的翻译软件,结合自己的需要,自己撸一个桌面翻译神器. 基本思 ...

  5. 400行代码实现双人对战五子棋(适合新手入门)

    400行代码实现双人对战五子棋(适合新手入门) 跟上一篇博客一样,都是看了慕课网的视频之后写的学习记录,记录一下实现的思路,大部分内容比较简单,但也从中学到了很多东西. 按惯例首先看一下效果:(素材都 ...

  6. 用c语言400行代码小游戏,程序员400行代码制作翻牌游戏解决无聊时间

    原标题:程序员400行代码制作翻牌游戏解决无聊时间 上班感觉累,很想放假,但是放假在家又感觉非常无聊,总是不知道干什么,又感觉还不如上班呢,反正无聊不如练练写小游戏吧,即练习了代码,做完后还能接着玩, ...

  7. python 250行代码开发一个贪吃蛇

    python 250行代码开发一个贪吃蛇 1. 前提工作准备 2. 全局变量的定义与包的导入 3. 游戏开始界面初始化 4. 游戏界面的设置 4.1 游戏界面,使用一个Point类进行划分 4.2 预 ...

  8. python tkinter计算器实例_Python+tkinter使用80行代码实现一个计算器实例

    Python+tkinter使用80行代码实现一个计算器实例 本文主要探索的是使用Python+tkinter编程实现一个简单的计算器代码示例,具体如下. 闲话不说,直奔主题.建议大家跟着敲一遍代码, ...

  9. python 翻译代码_python200行代码实现一个翻译软件

    python200行代码实现一个翻译软件 心血来潮写一个命令行的翻译软件方便使用(基于百度翻译api), 话不多说上代码-_- 支持从文件输入输出 支持从剪切板输入输出 #!/home/fyang/. ...

最新文章

  1. 死锁产生条件-互斥条件
  2. 动态开辟二维数组的两种方案及位体
  3. leetcode算法题--链表中的下一个更大节点★
  4. 正如孙正义的时间机器的理论
  5. sqlserver数据库大型应用解决方案总结 数据库负载均衡
  6. dell服务器安装系统注意之二.(2003/xp 的sn)
  7. 视频列表页html,视频列表.html
  8. C#多线程学习1——多线程的相关概念
  9. PCL对点云进行滤波处理并进行颜色可视化
  10. WORD中如何转换符号的全角半角
  11. CAD插件学习系列教程(五) 小菜选择易
  12. 分析图书管理系统的5W1H
  13. 网站攻击怎么来的,如何攻击?
  14. java使用密文链接数据库_Java基础——数据库连接信息使用密文
  15. 数据库系统原理学习笔记三(关系数据模型的组成要素)
  16. 云计算数据中心运维管理的重点
  17. 如何做好自媒体矩阵,0成本获取流量必备
  18. iOS 应用Archiving问题
  19. linux 导入fpx证书,金贡荣获神秘奖章,结果写着FPX全队慈父,网友点歌以父之名...
  20. 【人工智能】谭铁牛院士:人工智能新动态

热门文章

  1. learn python the hard way 习题6~10总结
  2. Jdbc -Statement
  3. 前端调数据会经常用到的事件处理
  4. 20165212任胤第四周课上作业补做
  5. 第三节课-损失函数和优化
  6. php部分---单文件上传的封装类
  7. JavaScriptCore.framework基本用法(一)
  8. 高项近5套选择题知识点思维导图
  9. SHELL编程传递参数方法详解$# $* $0 $1 $2 $...
  10. Windows加域提示 已超出此域允许的创建的计算机账户的最大值,请联系统管理员