基于PyQt5实时曲线绘制源代码和串口调试助手源代码带文件保存加载十六进制显示 Python两个工程的源代码 1.功能介绍 包含两个程序1.使用PyQt5编写实现的串口调试助手及源代码2.pyqtgraph波形曲线显示源代码。 串口助手除了收发文本框外还带有波特率数据位停止位校验位等参数设定并具备十六进制收发定时发送保存到文件等功能。 波形绘制程序除了曲线外还带有开始停止测量数据记录和数据加载等功能。 源代码均有详细的注释并提供服务。 2.环境说明 开发环境是PyQt5使用Python自带的串口库serial波形曲线采用pyqtgraph库。 源代码中包含注释设计说明文档等。 请将源码放到纯英文路径下再编译。 3.使用介绍 可直接运行在可执行程序里的exe文件操作并了解软件运行流程。 也可以使用Edit With IDLE 3.7编辑工具来运行Python脚本。 4.子功能模块介绍 串口调试助手带有十六进制收发功能 串口参数设定功能 数据保存功能可保存到指定文件 带有定时发送功能时间可设定 带有详细注释初学者可快速上手 波形曲线程序带有波形数据保存功能屏幕前的工控人举起焊枪突然停住——眼前的设备通讯死活调不通串口数据像被黑洞吞噬了一样。这时候要是手头有个趁手的调试工具该多好今天咱们就用Python打造两把瑞士军刀能抓波形能看数据的串口调试套件。基于PyQt5实时曲线绘制源代码和串口调试助手源代码带文件保存加载十六进制显示 Python两个工程的源代码 1.功能介绍 包含两个程序1.使用PyQt5编写实现的串口调试助手及源代码2.pyqtgraph波形曲线显示源代码。 串口助手除了收发文本框外还带有波特率数据位停止位校验位等参数设定并具备十六进制收发定时发送保存到文件等功能。 波形绘制程序除了曲线外还带有开始停止测量数据记录和数据加载等功能。 源代码均有详细的注释并提供服务。 2.环境说明 开发环境是PyQt5使用Python自带的串口库serial波形曲线采用pyqtgraph库。 源代码中包含注释设计说明文档等。 请将源码放到纯英文路径下再编译。 3.使用介绍 可直接运行在可执行程序里的exe文件操作并了解软件运行流程。 也可以使用Edit With IDLE 3.7编辑工具来运行Python脚本。 4.子功能模块介绍 串口调试助手带有十六进制收发功能 串口参数设定功能 数据保存功能可保存到指定文件 带有定时发送功能时间可设定 带有详细注释初学者可快速上手 波形曲线程序带有波形数据保存功能先看串口助手这把多功能钳子。核心代码里藏着个宝藏类SerialWorker继承自QThread的这伙计在后台默默搬运数据。注意它的十六进制处理绝活def run(self): while self.is_running: if self.ser.in_waiting: data self.ser.read_all() if self.hex_receive: # 十六进制模式开关 self.data_received.emit(data.hex( ).upper()) else: try: self.data_received.emit(data.decode(gbk)) except: self.data_received.emit(str(data))这招data.hex( )把字节流变成可视的十六进制字符串就像把机器语言翻译成人类能看懂的摩斯电码。定时发送功能更是个偷懒神器QTimer定时器搭配lambda表达式让重复发送变得像设置闹钟一样简单self.timer.timeout.connect(lambda: self.send_data()) self.timer.start(self.interval) # interval就是咱们设置的发送间隔切换到波形监测程序pyqtgraph的性能确实比matplotlib生猛。看这个动态曲线刷新的核心逻辑def update_plot(self): if self.data_buffer: self.plot_widget.plot(self.data_buffer, clearTrue, penpg.mkPen(color(0,155,0), width2)) self.data_buffer [] # 清空缓冲区准备下一帧用双缓冲机制避免界面卡顿每次全量重绘反而比增量更新更流畅——这反直觉的操作正是pyqtgraph的独门绝技。数据保存功能藏着个小彩蛋不仅存原始数据还把时间戳和数值打包成CSVwith open(file_name, w) as f: f.write(timestamp,value\n) for t, v in zip(self.time_stamps, self.saved_data): f.write(f{t:.3f},{v}\n) # 保留三位小数的时间戳环境配置要注意三个坑PyQt5版本最好锁定在5.15.4避免兼容问题serial库得用pyserial而不是同名包pyqtgraph安装时记得带上opengl支持。源码里的# TODO注释是特意留给初学者的彩蛋任务——比如尝试给波形添加FFT分析功能或是实现串口数据的自动协议解析。最后说个真实案例某厂PLC设备偶发数据异常用咱们的波形工具连续监测48小时后终于抓到那个0.1秒的异常尖峰。所以别看工具小关键时刻真能顶大事儿。代码已打包放在项目根目录的toolbox文件夹拿去不谢