尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

SSCom 串口调试完整指南:连接、收发与排错一次讲清

SSCom 串口调试完整指南:连接、收发与排错一次讲清 SSCom 串口调试完整指南连接、收发与排错一次讲清【免费下载链接】sscomLinux/Mac版本 串口调试助手项目地址: https://gitcode.com/gh_mirrors/ss/sscom串口调试在 Linux 和 Mac 上没有太多顺手的选择而 SSCom 就是为这两个平台做的串口调试助手图形界面里配置参数、发指令、看返回HEX 与 ASCII 随意切换还能定时发和整文件传输。下面按实际使用的顺序把它从装好、连上到收发、排错一次讲完。一、让 SSCom 跑起来并确认设备已被系统识别先说结论Linux 下直接拿 AppImage 就能用Mac 下从源码编译一次即可。设备能否被识别看 SSCom 串口号下拉列表里有没有你的设备节点——它是启动时自动枚举系统可用串口的列表为空基本就是驱动没装好。1.1 两种安装方式不需要改源码的用户Linux 直接用仓库 Release 里的 AppImage 版本任意发行版解压后运行即可不用装任何依赖。需要自己编译的场景比如你在 Mac 上或者想用新版 QtLinux 下编译前先装好 Qt5 串口库等依赖再执行 qmake 和 makesudo apt-get install qtcreator libqt5serialport5-dev libudev-dev qt5-default qmake make # 生成名为 sscom 的可执行文件Mac 下用 Homebrew 装 Qt5 后把 qmake 所在目录加进 PATH 再编译brew install qt5 export PATH$PATH:/usr/local/Cellar/qt5/5.15.2_1/bin qmake make拿到可执行文件后运行即可./sscom。注意 SSCom 没有--port、--baudrate这类命令行参数所有配置都在界面里做。1.2 确认设备节点存在设备插上后先在终端里确认系统给它分配了节点ls -l /dev/ttyUSB* /dev/ttyACM* # 查看 USB 转串口设备节点Linux 上节点通常是ttyUSB0、ttyACM0这类Mac 上是/dev/tty.usbserial-xxxx、/dev/tty.usbmodemxxxx。节点存在SSCom 的串口号下拉列表里就会自动出现它。图里左右分别是 Linux 和 Mac 上的 SSCom左侧已打开ttyUSB0发出ATGMR后收到模块版本信息右侧 Mac 上打开的是tty.usbserial-A601MHQH接收区滚动着设备的启动日志。两个平台界面上几乎一致只是设备节点的命名规则不同。二、打通第一次连接最小组合参数与一次成功收发第一次连接成功的关键只有一个波特率必须和设备一致其余参数保持默认就能通过大多数设备。2.1 最小组合参数是什么参数作用默认值波特率与设备的通信速率必须和对方完全一致115200数据位每个字符的有效位数8停止位帧结束的标志位1校验位奇偶校验多数设备用不上None流控硬件/软件流控调试时先关掉None下拉框里预设了 9600 / 19200 / 38400 / 115200不够用时选 Custom 可手填最大 4000000。两个省事的细节SSCom 会按串口号分别记住每个端口的参数切换端口时自动还原上次配置窗口底部状态栏实时显示当前生效的配置格式类似ttyUSB0 已打开 115200bps,8,1, None, None连上后扫一眼就能确认参数没有填错。2.2 用环回测试验证链路没有第二个设备时可以做环回测试把 USB 转串口模块的 TX 和 RX 短接自己打开自己。此时发送内容建议勾选发送新行如果接收区原样回显、底部 R 计数增长说明软件到驱动这一段都是通的后面收不到数据的问题就可以直接往设备上找。三、常用的几个动作发送、定时、HEX 与文件3.1 基本收发串口没打开时发送按钮是灰的点打开串口后才激活。在字符串输入框里敲内容点发送即可勾选发送新行后每次发送会自动在末尾追加\r\n这是大多数 AT 指令模块、嵌入式终端的默认约定建议常开。3.2 定时发送勾选定时发送并在旁边的数值框里填间隔毫秒默认 1000SSCom 就会按这个间隔反复发送输入框里的内容直到你取消勾选。做设备心跳检测、压力测试时不用一直按发送。勾选状态下间隔框会锁定想改间隔需要先取消勾选。3.3 HEX 显示与 HEX 发送两个独立的开关分别管收和发。勾选HEX 显示后接收区按字节显示如52 73 74 3A 30 78 31排查二进制协议时看字节本身比猜字符更有用勾选HEX 发送后输入框内容会按当前状态自动转换——你输入ABC实际发出的是41 42 43反过来在 HEX 状态切回 ASCII 也会转回原文。所以切换开关不丢数据只是切换看待同一份数据的方式。3.4 文件传输与窗口管理顶栏从左到右依次是打开文件、发送文件、停止、保存窗口、清除窗口。流程是点打开文件选定文件发送文件把它按原始字节整包发出停止随时中止传输——适合给设备刷小固件或下发配置文件。保存窗口把接收区当前内容存成文本文件做日志留存清除窗口清空接收区。底部的 S/R 计数统计本次会话的发送和接收字节数传输完文件对一下 R 计数是否等于文件大小是最快的完整性检查。四、出错时的排查路径权限、乱码与平台差异排查顺序建议固定下来先看设备在不在再看权限最后才是参数——乱码九成出在波特率上。4.1 现象串口列表里没有设备原因设备节点根本没被系统创建通常是 USB 转串口芯片的驱动没加载。修复先跑ls /dev/ttyUSB* /dev/ttyACM*确认节点是否存在存在但 SSCom 看不到重启一次程序再枚举不存在就查对应芯片的驱动模块是否加载常见的是 cp210x、ch341、ftdi_sio然后重新插拔。4.2 现象打开串口报 PermissionError原因普通用户默认没有访问串口设备的权限SSCom 遇到这类错误会直接断开并在日志里打出PermissionError。修复先用sudo ./sscom跑一次能打开就坐实是权限问题长期解决是把用户加进 dialout 组改完要注销重新登录才生效sudo usermod -aG dialout $USER4.3 现象收到的数据是乱码原因绝大多数是波特率不匹配少数是数据位/停止位/校验位对不上。修复核对设备文档里的实际波特率然后依次检查数据位、停止位、校验位是否一致再勾上 HEX 显示——如果字节呈现出规律性的结构比如固定的头尾、递增的长度字段说明链路是通的、只是格式没对上如果字节完全随机基本可以回到波特率上重查。4.4 平台差异Linux 与 Mac 有什么不同界面和操作完全一致差异只在设备命名和获取方式上Linux 下设备是ttyUSB0、ttyACM0Mac 下是tty.usbserial-xxxx、tty.usbmodemxxxxMac 没有 AppImage靠 Homebrew 装 Qt5 后编译。参数、收发、HEX 切换这些行为两个平台没有任何区别。五、真实任务收尾用 SSCom 完成一次 AT 指令调试AT 指令模块蓝牙、Wi-Fi、GSM是 SSCom 最高频的使用对象下面以一张 Ai-Thinker 模块为例走完整流程。参数按 115200、8 数据位、1 停止位、无校验、无流控设置并勾选发送新行。第一步发送AT收到OK说明链路通了第二步发ATGMR模块会回显固件版本、SDK 版本和厂商信息用于确认模块型号和固件是否匹配第三步发ATRST让模块复位观察它重新上线后的输出。过程中可以随时勾定时发送、把间隔设成 1000ms让 SSCom 每秒自动发一次AT模块掉线时接收区立刻就不再出现OK整个交互过程点保存窗口落盘之后用文本工具做离线分析。下一步可以做什么重新插拔或重启设备前打开 SSCom保存好窗口内容把完整的启动日志存下来用不同的波特率各试一次收发确认乱码问题确实出在波特率而不是线缆勾上定时发送挂一小时验证链路长时间稳定性拿一个真实文件走一遍发送文件用 R 计数和文件大小核对传输完整性【免费下载链接】sscomLinux/Mac版本 串口调试助手项目地址: https://gitcode.com/gh_mirrors/ss/sscom创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表