串口调试助手全记录:用SerialTest打通串口、蓝牙与网络收发,还能实时画曲线
串口调试助手全记录用SerialTest打通串口、蓝牙与网络收发还能实时画曲线【免费下载链接】SerialTestData transceiver(monitor)/realtime plotter/shortcut/file transceiver over serial port/Bluetooth/network on Windows/Linux/Android/macOS | 跨平台串口/蓝牙/网络调试助手带数据收发/实时绘图/快捷发送/文件收发面板可在PC和Android设备上使用项目地址: https://gitcode.com/gh_mirrors/se/SerialTestSerialTest是一款跨平台的串口调试助手可在Windows、Linux、macOS、Android四个系统上运行集成了数据收发、实时绘图、快捷发送、文件收发四个面板并支持串口、蓝牙SPP/BLE、TCP、UDP五种接入方式。本文以一线使用者的视角把它从连上设备到完成一轮调试的真实用法完整走一遍适合刚接触MCU调试的开发者以及需要用电脑或手机跟设备对话的普通用户。定位速览它替谁解决什么问题解决每个系统一套串口工具的麻烦——PC和Android上操作逻辑一致换设备不用重新学适合调试STM32、Arduino、ESP32等MCU的串口输出无需打开设备管理器或翻dmesg找端口适合把传感器数值实时画成曲线的人最多可同时画99条曲线适合需要频繁发固定指令、收发射频/蓝牙透传数据的人免费开源Windows版绿色免安装只产生一个配置文件五分钟跑通第一次串口连接 拿到程序Windows版解压即用Linux可从Flathub安装flatpak install flathub io.github.wh201906.serialtest或Arch仓库yay -S serialtestAndroid版可在F-Droid获取。想自己编译的话源码仓库地址是 https://gitcode.com/gh_mirrors/se/SerialTest找端口程序启动后自动列出所有可用串口含厂商信息没找到就点刷新设置参数双击目标设备波特率填115200以设备要求为准点右侧打开确认状态下方状态显示OK即连接成功参数会被自动记录下次双击同一设备直接复用按需进阶连接前勾选高级可设数据位、停止位、校验方式和流控串口打开后这些参数还可以实时改核心功能详解数据收发面板十六进制、时间戳、编码一次配齐功能是什么界面分三区——绿色接收区、红色发送区、蓝色设置区中间拖一根分割线就能调比例。接收区可勾选16进制显示原始字节、可显示每条数据的时间戳发送区支持每次发送后自动追加后缀\n、\r\n、自定义文本或十六进制字节还带重复开关实现定时发送。真实场景怎么用我调试一块中文串口屏时收到的全是乱码最后发现设备用的是GB18030编码。在设置区把编码改成GB18030它涵盖GB2312/GBK再点设置确认乱码立刻变正常文字。另一种常见情况设备要求每条指令以FF FF FF结尾此时把后缀类型设为16进制、填入FF FF FF即可不用每次手动补。一个实用技巧接收区关掉实时后数据只进内部缓存不上屏内存占用约与字节数1:1——长时间挂机抓大量数据时用它比实时刷新省资源需要看时点更新按钮一次性同步到接收框或用导出按钮落盘。实时绘图面板把传感器数据直接变成曲线 功能是什么位于绘图界面勾选启动后程序开始解析并绘制接收到的数据最多99条曲线。勾高级后可设帧分隔符帧尾、数据项分隔符和清空符X轴有计数/第一项数据/时间三种模式图例支持右键改曲线名字、双击图例隐藏某条曲线鼠标滚轮缩放、拖拽平移Android端对应捏合和单指拖拽。真实场景怎么用我监控三路传感器时设备每行发x1mm,y-1.1db,z10这样的文本帧。把帧分隔符设为换行符、数据项分隔符设为,、数据项数设3三条曲线就同时出来了——它只在分隔符附近找有效数字所以数据里混着单位、字符也没关系。一个实用技巧如果每条数据自带时间戳把X轴类型设为第一项数据每帧第一个数当X值比用上位机时间更准因为上位机不是实时系统时间片会漂移。另外给设备发一个约定的字符串清空符比如cls就能远程清空绘图区、重置计数适合长时间测试中自动分段。控制面板把高频指令变成一键按钮 ⚡功能是什么控制面板里可以定义多条快捷项一键发送指定数据、快速发送数值适合调参数、支持十六进制内容和转义字符、可加前缀后缀整套配置还能导入/导出备份。真实场景怎么用我调试HC-05蓝牙模块时把常用AT指令查名字、查密码、改名字做成了三个按钮调试时点一下就行不用每次去翻说明书敲指令。项目仓库的demo/Control/文件夹里还放好了AT_HC02、AT_HC05、AT_JDY34等常见模块的指令集合文件直接导入控制面板就能用。一个实用技巧配合控制面板里的快速数值发送项调PID参数这类改一个数→观察效果的循环比手打数字快得多。文件收发与网络接入大文件和小设备之间的缓冲器 功能是什么文件收发面板支持发送前快速算CRC32发送方可以配置自动暂停——每发出一定字节数就停一会儿等接收方消化接收方可以配置自动停止——收够指定字节数就自动收手。CRC计算和文件读写都在独立线程里跑。另外程序还支持TCP客户端/服务器、UDP监听远端地址可以是IP或域名服务端同时被多个设备连接时也能单独断开某个设备。真实场景怎么用往设备里灌几兆字节的标定数据时一次发完对方缓冲区早就炸了。我在文件发送时开启每发一段暂停X毫秒设备边收边写Flash全程没丢字节收完后对两端算出的CRC32值对比一下一致性立刻确认。一个实用技巧做TCP服务器时把它挂在局域网里手机上的SerialTest直接当客户端连进来PC和手机之间就能互相收发比插USB线方便——两台Android手机之间同理。完整工作流示例从零开始调一个温度传感器假设我手边是一块STM32开发板要调它的温度上报功能整个流程大约十几分钟插上USB转串口线启动SerialTest双击COM3波特率115200点打开状态变OK切到数据界面看到上报的文本行但肉眼看不出波动趋势——点面板右上角的分离按钮橙色标识把数据面板拖成独立子窗口放到副屏切到绘图界面勾启动帧分隔符设换行符、数据项分隔符设逗号、数据项数按每帧字段数填曲线开始滚动勾显示最新数据让X轴跟随新数据开发板每100ms发一帧画了10分钟数据太挤看不清——右键图例里的曲线改名成温度湿度双击其中一条隐藏它滚轮放大重点区段调试结束数据面板点导出把原始缓存存成文件存档断开连接全程没有切出第二个软件数据、绘图、存档都在同一个工具里完成。常见问题 FAQ ❓QAndroid上连不上USB转的串口列表里没有端口AAndroid端目前只支持/dev/ttyXXX这类硬件串口。需要接USB串口设备时可参考项目仓库里的相关讨论discussions #11给出的方案。Q收到的中文是乱码十六进制看着又正常A典型的编码不匹配。去设置区把编码改成设备实际用的那一种——中文设备常见GB18030覆盖GB2312/GBK纯数字、英文指令则无所谓。Q数据是x1mm,y-1.1db这种带字符的绘图面板画不出来A两件事要配好一是高级里的帧分隔符和数据项分隔符要和实际格式对上二是只有以帧分隔符结尾的完整帧才会被绘制半帧会被丢弃。程序在分隔符附近自动找有效数字字符前缀不影响。Q为什么有时用第一项数据当X轴而不是时间A因为上位机不是实时系统处理高速数据时时间戳会有抖动。让下位机把时间戳放在每帧第一个数据位X轴选第一项数据数据项数曲线数1时间精度就由设备端保证。场景与选型建议首选它的情况快速验证MCU串口输出是否工作正常多路传感器数据的实时曲线观察HC-05/JDY-34等蓝牙透传模块的AT调试PC与手机之间的临时数据通道中小文件几MB级收发并要CRC核对。它不是最优解的情况需要复杂协议解析、断帧重组、流量统计的场景专用协议分析工具更合适——它本质是通信助手不做深度协议分析高速信号级问题时序、毛刺应该上逻辑分析仪另外Android端不支持USB串口透传这类需求留在PC端更稳妥。写在最后用了这么久SerialTest给我的印象是克制功能覆盖串口、蓝牙、网络三类通道但每个面板都只做通信工具该做的事界面没有花哨功能参数记录、面板分离、绿色免安装这些小设计倒是都踩在实际需求上。它适合作为你工具箱里那把随时拿起来就能用的螺丝刀——不解决所有问题但日常调试的90%都够得着。想深入了解的话源码在仓库 https://gitcode.com/gh_mirrors/se/SerialTest git clone即可仓库内还有中文文档 doc/README/README_zh_CN.md、分步教程 doc/tutorials/connect/connect_zh_CN.md连接设备、doc/tutorials/data/data_zh_CN.md数据收发、doc/tutorials/plot/plot_zh_CN.md绘图以及 demo/README.md 里针对Arduino、STM32、STC8G的配套例程照着例程写设备端代码绘图和控制面板基本可以即连即用。【免费下载链接】SerialTestData transceiver(monitor)/realtime plotter/shortcut/file transceiver over serial port/Bluetooth/network on Windows/Linux/Android/macOS | 跨平台串口/蓝牙/网络调试助手带数据收发/实时绘图/快捷发送/文件收发面板可在PC和Android设备上使用项目地址: https://gitcode.com/gh_mirrors/se/SerialTest创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考