串口数据可视化工具:Serial Port Plotter 完全指南
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 作为一个成熟稳定的串口数据可视化工具,已经在众多硬件开发项目和科研实验中得到了广泛应用。其简洁的界面设计、强大的功能特性和稳定的性能表现,使其成为串口数据监控领域的首选解决方案。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0194- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00

