首页
/ 串口数据可视化工具:Serial Port Plotter 完全指南

串口数据可视化工具:Serial Port Plotter 完全指南

2026-02-06 05:31:05作者:段琳惟

Serial Port Plotter 是一个功能强大的 Windows 应用程序,专门用于实时显示来自串行端口的数据。该应用基于 Qt 框架和 QCustomPlot 库构建,为嵌入式开发者、硬件爱好者和实验研究人员提供了直观的数据可视化解决方案。

核心功能特性

  • 无坐标轴限制:未知/新的通道数据会自动创建新图表并使用(14种循环颜色调色板)
  • 无数据点限制:所有接收到的数据都会被保留,用户可以随时查看历史数据
  • 无波特率限制:测试支持高达 912600 bps 的传输速率
  • 鼠标缩放和拖拽:使用鼠标滚轮或点击进行缩放(仅限X轴)
  • 实时坐标显示:在绘图区域移动鼠标时,状态栏会显示图表中对应点的X和Y值
  • 通道名称图例:双击可修改通道名称
  • 通道选择功能:点击图例文本即可选择对应通道
  • 支持正负整数和浮点数
  • PNG格式导出:可将图表保存为高质量PNG图片
  • CSV格式导出:支持将采集数据导出为CSV格式进行后续分析
  • 自动缩放可见图表:一键自动调整Y轴显示范围

应用界面展示

串口绘图工具主界面

快速使用指南

数据发送格式要求

要向应用程序发送数据,必须遵循特定的格式以便区分不同数值。每条消息必须以'$'开始,以';'(分号)结束,内部整数需要用空格分隔。

C语言示例代码:

/* 示例:绘制两个数值 */
printf ("$%d %d;", data1, data2);

操作要点说明

  • 在控件上使用鼠标滚轮可以改变其数值,在绘图区域使用滚轮可以进行缩放
  • 当停止/暂停时,绘图区域可以被拖拽,文件保存功能会被启用
  • 要启用文件保存功能,在开始绘图前点击文档按钮

文件保存按钮

通道管理技巧

在图形控制面板中双击通道可以隐藏/显示特定通道,这在进行多通道数据分析时特别有用。

项目架构解析

核心技术组件

  • Qt框架:提供跨平台的GUI应用程序开发能力
  • QCustomPlot库:专业的2D绘图库,支持高性能数据可视化
  • 多线程处理:独立的串口读取和图形更新线程确保流畅性能

数据处理流程

应用程序采用状态机模式处理串口数据:

  • 等待开始状态:检测数据流中的'$'起始符
  • 消息处理状态:接收并解析有效数据
  • 数据可视化:实时更新图表显示

安装与构建

获取源代码

git clone https://gitcode.com/gh_mirrors/se/serial_port_plotter
cd serial_port_plotter

项目依赖

  • Qt 5.11.1 或更高版本
  • QCustomPlot 2.0.1 库
  • qDarkStyle 2.5.4 主题

构建说明

项目提供完整的 Qt 项目文件 SerialPortPlotter.pro,用户可以使用 Qt Creator 打开并构建项目。对于不想自行构建的用户,项目中包含独立的可执行文件。

实际应用场景

硬件开发调试

  • 传感器数据实时监控(温度、湿度、压力等)
  • 嵌入式系统输出数据可视化(Arduino、Raspberry Pi等)
  • 产品原型验证过程中的数据趋势分析

科研与教育应用

  • 实验室数据采集与实时显示
  • STEM教学中的数据可视化演示
  • 自动化测试系统中的关键指标记录

性能优化建议

根据要显示的数据量,可以调整数据点的数量。例如,如果从 mbed 的串口每 10 毫秒(100 Hz)发送数据,并且绘图仪设置为显示 500 个点,它将包含 5 秒的数据信息。

版本演进历史

项目自 2014 年发布以来,经历了多个重要版本的迭代:

  • 1.3.0版本(2018-08-01):新增COM端口刷新按钮、通道可见性控制、自动缩放功能和CSV保存支持。

  • 1.2.2版本(2018-07-26):新增UART调试文本框和文本过滤功能。

  • 1.2.1版本(2017-09-24):增加了对浮点数/双精度数的支持。

项目资源

图标资源

项目包含丰富的图标资源,位于 res/icons 目录下,包括:

  • Line Icon Set 图标包(三种颜色变体)
  • Lynny 图标包(三种颜色变体)

样式主题

提供多种界面样式选择,包括 qDarkStyle 暗色主题和自定义样式表,用户可以根据个人偏好进行选择。

Serial Port Plotter 作为一个成熟稳定的串口数据可视化工具,已经在众多硬件开发项目和科研实验中得到了广泛应用。其简洁的界面设计、强大的功能特性和稳定的性能表现,使其成为串口数据监控领域的首选解决方案。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
atomcodeatomcode
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get Started
Rust
444
78
docsdocs
暂无描述
Dockerfile
691
4.47 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
408
327
pytorchpytorch
Ascend Extension for PyTorch
Python
550
673
kernelkernel
deepin linux kernel
C
28
16
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.59 K
930
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
955
931
communitycommunity
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
650
232
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.08 K
564
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
C
436
4.43 K