• 正文
  • 相关推荐
申请入驻 产业图谱

这个1.1K Star的神器,能把多路串口发来的数据快速画成波形

18小时前
179
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

嵌入式调试时,我们经常会遇到这样的场面:

串口助手里不断往上滚数字,肉眼盯了半天,只能确认“数据确实在变”。至于变化是否平滑、几个通道是否同步、某次抖动发生在什么时候,单看文本很难判断。

常见的处理办法是把数据保存下来,再导入 Excel、MATLAB 或 Python 画图。这当然能用,但调一个传感器、PID 参数或者电机控制程序时,每改一次代码都要重新采集和作图,太折腾了。

SerialPlot 做的事情很直接:读取串口数据,实时画成曲线。

项目地址:https://github.com/hyOzd/serialplot

一个不打算包办所有事情的小工具

SerialPlot 是一款基于 Qt 开发开源软件,界面和功能都比较克制。它不是示波器的替代品,也没有复杂的数据分析模块,重点就是把设备通过串口发来的数据快速画出来。

这种定位反而很适合日常调试。

例如,单片机每隔一段时间输出温度、转速和控制量:

26.4,1520,37
26.5,1536,39
26.7,1518,35

将 SerialPlot 设置为 ASCII 数据和逗号分隔后,三个数值就能分别显示为三条同步曲线。原本挤在串口助手里的数字,马上有了形状。温度有没有突跳、转速是否振荡、控制量何时触顶,一眼就能看出来。

ASCII 和二进制数据都能处理

很多串口绘图工具只接受一行一组的文本数据,优点是简单,缺点是占用带宽。采样率升高或者通道变多后,大量数字转成字符串再发送,效率不太理想。

SerialPlot 同时支持 ASCII 和二进制输入。

ASCII 模式采用 CSV 一类的分隔格式,适合刚开始调试时使用。代码里用 printf 输出几个变量,电脑端稍作设置即可看到波形,不必先写一套上位机程序。

二进制模式支持有符号或无符号的 8、16、32 位整数以及浮点数。对于采样频率较高的项目,这种方式能减少传输的数据量,也省去了设备端频繁进行数字转字符串的开销。

它还提供自定义帧格式,可以设置帧头、帧长、校验等内容。持续数据流中一旦丢字节,固定的数据排列可能会整体错位;加入帧头和校验后,软件更容易重新找到一帧数据的起点。调试时间较长、串口链路偶尔受干扰时,这一点很实用。

多通道同步看,问题更容易暴露

单独观察一个变量,往往看不出系统为什么异常。

调电机时,可以把目标转速、实际转速和控制器输出放在同一时间轴上;调姿态算法时,可以同时观察多个轴的数据;测试温控程序,则可以对照温度与加热输出的变化。

SerialPlot 支持多通道同步绘图。 各通道曲线可以同时显示,便于观察变量之间的先后关系。软件还提供增益和偏移设置,当几个变量的量级差距很大时,可以先调整显示比例,免得数值较小的曲线被压成一条直线。

这里也要说清楚:SerialPlot 更适合调试和快速观察,不是专业的数据采集分析系统。需要严格的时间戳、高级频谱分析或长时间海量存储时,仍然要考虑更完整的工具链。

不只是看曲线,也能向设备发命令

有些设备不会在上电后自动上传数据,需要先发送启动采集、切换模式或修改参数等命令。SerialPlot 可以预先定义 ASCII 或十六进制命令,调试时直接点击发送。

比如:

START

或者一段二进制命令:

AA 01 01 55

这样一来,观察曲线和控制设备可以在同一个窗口中完成。对于协议不算复杂的小项目,通常不用再开一个串口助手来回切换。

当前波形还可以保存为 CSV,之后用其他软件继续处理;也可以制作快照,保留某次调试现场。遇到偶发异常时,保存一份曲线往往比截取满屏串口文本更容易复盘。

上手简单

最省事的方式是前往项目的 Releases 页面 下载已经编译好的版本。项目提供 Windows 程序和 Linux AppImage,当前公开版本为 0.13.0,已经迁移到 Qt 6。

基本使用流程可以归纳为几步:

    选择串口并设置波特率、数据位、停止位等参数。根据设备输出选择 ASCII、简单二进制流或自定义帧。设置通道数量和相应的数据类型。打开串口,检查各通道曲线是否与预期一致。需要留存时,再保存快照或导出 CSV。

如果使用 ASCII 模式,建议设备每个采样周期发送一行数据,各通道保持固定顺序。例如:

printf("%d,%.2f,%.2frn", speed, voltage, current);

SerialPlot 没有很重的学习成本。设备输出格式确定后,几分钟就能看到曲线。它尤其适合传感器数据检查、控制算法调参以及多变量状态观察。

这个工具也很诚实:串口进来什么,它就尽量把什么画出来。需要临时确认一组数据的走势时,不必先搭 Python 环境,也不用专门写上位机。打开软件、选好串口,先看波形再说。


串口绘图工具用顺手以后,开发板上的通信接口够不够用,很快就会变成一个现实问题。尤其是多控制器、多传感器或车载通信项目,几路 UART 往往转眼就被占满。

创龙科技基于全志 T536 的开发板提供 17 路 UART 和 4 路 CAN-FD,适合需要集中接入多路串口设备及 CAN 节点的场景。T536 采用 4 核 Cortex-A55@1.6GHz,并集成 RISC-V 核,平台还支持 Local Bus 与 inline ECC。需要同时采集、转发和处理多路通信数据的项目,可以通过文末卡片进一步了解。

相关推荐

最全电子漫画收集达人,漫画控必选!用文字和图片带你领略电子世界之美。 由晓宇哥哥操刀的芯片之家公众号,提供45万个Symbol和3D封装库免费下载,定期分享软硬件、物联网类技术知识外,还精心整理大量参考设计和文档资源,电路图和源代码资料供下载。 立即打开“芯片之家 ”,感受电子与艺术的完美结合。