串口调试助手
浏览器连接本机串口,收发字节、AT 结果、异常和操作事件都有日志。数据只保存在本机浏览器或你选择的文件中,不上传本站服务器。
连接设备
- 使用提供 Web Serial 的桌面浏览器,在 HTTPS 或 localhost 打开。页面会检测能力;手机、内嵌浏览器未必能连接串口。
- 关闭占用串口的其他程序,在「参数」中配置波特率、数据位、停止位、校验和流控,再选择设备连接。已授权设备可以从下拉框重连。
- 网页通常只能获取 USB VID/PID,不能保证显示操作系统的 COM 名称;请以系统设备选择框为准。连接后立即接收,刷新或断开后需要手动重连,不会自动发送。
文本、Hex 与草稿
文本收发可选 UTF-8 或 GBK,流式接收能跨字节分片组合中文。切换编码仅影响之后收到的内容;已有记录保留当时的解码结果。GBK 无法编码的字符会报错,不会替换成问号。AT、文本和 Hex 各自保留草稿与行尾,切换不会覆盖。
文本保留输入的换行并追加所选行尾,空文本可仅发行尾。Hex 支持 AA 01 0D 0A、AA010D0A、0xAA, 0x01,不追加行尾。单次最多 65536 字节,无效或半个字节会被拒绝。
「转换为 Hex」包含当前编码和所选行尾,保留原文本草稿。「转换为文本」严格检查字节编码,并把行尾设为不追加以避免重复换行。Ctrl / Cmd + Enter 发送,普通 Enter 编辑多行;输入法组字与按键重复不会触发发送。
AT 命令与交互正文
一条命令等待一次结果,回显、响应和最终结果关联到 AT 编号。支持 OK、ERROR、+CME ERROR、+CMS ERROR,以及拨号相关 CONNECT / NO CARRIER。+CMT、+CDS、+CBM 多行主动上报的下一行是上报正文,即使内容为 OK / ERROR 也不结束当前命令;+CMGR / +CMGL 的短信正文也单独处理。
收到 > 提示后会打开正文面板,不要求提示符带换行。可输入文本或 Hex,选择 Ctrl-Z、CRLF 或不追加结束符(定长数据),也可用 ESC 退出设备正文输入。正文输入最多等待 120 秒;提交后使用正文面板独立设置的最终响应超时(默认 60 秒)。短信发送 / 保存还需对应的 +CMGS / +CMGW 响应,防止把正文回显 OK 当成成功。
AT 关联依赖当前等待窗口、已识别上报和完整行;AT 没有通用事务编号,网页编号不是设备返回的事务 ID。数值结果码、厂商私有的二进制上报或非标准提示 / 最终结果可能需要按设备手册在文本或 Hex 模式调试。原始字节始终保留,解析结果不能代替原始证据。
超时或「取消等待」不会撤回已发送数据。后续 AT 会暂停,确认设备空闲、迟到回复结束后点「恢复 AT 发送」。正文输入超时后设备可能仍在等待正文,需根据设备手册退出或复位后再恢复。
命令库包含常用示例、最近发送和最多 30 个本机收藏。载入只改草稿,不会自动发送;示例须设备支持。
日志阅读与恢复
默认「连续行视图」合并跨接收分片的文本,不重复列出原始 RX。没有换行的尾部实时显示,长行有界分段。可切到原始分片文本或 Hex 查看实际 read() 字节,展开记录可复制完整内容,并直接查看关联的原始 RX 分片 Hex。浏览器分片不是协议帧,也不代表线路上的硬件时序。
TX 在发起时记录,再更新为成功或失败;成功仅确认写入串口,不保证设备处理成功。失败时已发出的部分长度未知,不会计作成功字节。AT 正文同样保留完整 TX,关联到原命令。
方向、文本、Hex、状态筛选针对当前内存记录,复制和筛选 TXT 同样使用这个范围。Hex 搜索在连续行视图中会显示匹配的原始 RX。列表默认显示最近 300 条,可加载更早的内存记录;暂停显示不影响采集,手动阅读时不会随新数据跳走。「最新」查看最新快照,不改变自动滚动开关。手机使用顶部「发送与工具 / 收发日志」标签双向切换。
界面内存最多 10000 条、约 16 MiB,早期记录转由本地 IndexedDB 归档保留。刷新后恢复最近记录、计数与草稿,不恢复连接或发送任务。未完成的发送会标记无法确认,未完成 AT 标记中断。离开正在调试或尚未导出的页面会有浏览器确认。
本地归档异步分批写入,受浏览器配额、隐私模式和系统异常影响;不能保证断电或浏览器被强制终止前最后一批数据已保存。归档失败会显示红色提示并继续内存采集。为防止多个标签互相覆盖,同一浏览器配置中的归档只允许一个工具窗口写入,其他窗口会提示归档不可用。浏览器清理站点数据会删除本地归档。
- 全部归档 JSON:包含归档中的全部记录、完整 Hex、时间、方向、连接、TX / AT 最终状态与内存淘汰统计,不受当前筛选或列表条数限制。
- 全部归档 RX / TX 成功 BIN:原样拼接全部归档的接收 / 已确认发送字节,不含时间和方向边界。归档不可用时降级为内存范围并明确提示。
- 筛选 TXT / 复制筛选:当前内存筛选结果。JSON 才是完整状态导出的首选。
- 清空日志:确认后删除本次内存和本地归档、重置计数;保留当前等待中的命令。不删除已经选择保存的文件。
数值曲线
收发日志上方的“数据曲线”可采集之后收到的换行数值行,支持 CSV、JSON 与 key=value。首次打开会开启采集,关闭窗口继续接收,取消“采集新 RX”才停止曲线采集。暂停显示不停止采集。图上可拖选放大、逐点查看,并导出保留数据的 CSV 或当前曲线 PNG。该功能不发送命令,不改变原始日志;详见数据曲线说明。
持续写文件
支持文件系统访问的浏览器可选择「从现在起持续写文件」,记录此后所有原始字节、解析和状态更新。格式为 JSONL:首行 type=session,其后 type=record;同一 id 的 type=update 更新 TX / AT 最终状态。开始前的历史不写入这份文件,可先导出归档 JSON。
点「停止并保存记录」后才会提交文件;关闭页面或强制结束浏览器不能保证提交。文件写入失败或磁盘过慢导致积压会告警,文件可能只有前缀,本地归档和内存采集仍继续。长时间采集请定期停止保存,再开始新文件;归档和文件都受本机存储容量限制。
定时发送、队列与命令序列
定时使用启动时的内容、格式、编码、行尾和超时快照,立即发送第一条,写入完成或 AT 结束后再计算间隔(最少 100 ms)。次数 0 表示持续。定时期间可以编辑草稿并手动发送,所有数据经过同一串行队列,最多排队 20 项,不会并行写入。
可暂停 / 继续定时;暂停不撤回本次已发送的数据。停止只取消后续定时,本次 AT 可继续等待或单独取消。写入失败、AT 失败 / 超时、接收异常、断开或离页会停止定时。交互式 AT 不用于自动循环。浏览器后台节流和系统休眠会延迟任务,这不是精确计时器。
「文件、命令序列与控制信号」支持每行一条命令,最多 50 条,使用当前格式 / 编码 / 行尾。可写 AT+CSQ => +CSQ: 添加区分大小写的文本匹配条件。AT 须同时有匹配内容和成功最终结果;文本 / Hex 有条件则等待匹配,无条件则等写入结束。所有步骤会先整体校验,无效输入不会只执行前半部分;失败、超时或手动停止后不发后续步骤。交互式命令请单独执行。
文件与控制信号
文件最多 16 MiB,按 4 KiB 分块原样发送,不追加行尾。选择文件后需主动点击发送;任务有进度并可停止。文件和命令序列开始前会停止定时,运行期间不混入手动数据。停止不撤回已写入数据,正在写入的分块可能需要完成;必要时可断开连接。
快捷键按钮发送 Ctrl-C、Ctrl-Z、ESC 原始单字节,控制信号可手动设置 DTR / RTS、读取 CTS / DSR / DCD / RI。使用 RTS/CTS 流控时 RTS 由硬件管理。设置输出可能使设备复位,请按电路和设备手册操作。驱动不支持时会显示实际失败原因。
常见问题
- 连接失败或串口被占用?
- 关闭串口助手、IDE 监视器等,检查驱动、数据线和系统权限,重新选择设备。
- 乱码或没有响应?
- 检查波特率、数据位 / 校验 / 停止位、TX / RX / GND 接线、电平、编码和行尾。原始 Hex 可以区分未收到数据和文本解码问题。
- 为什么只显示一段日志?
- 检查方向、搜索、视图、暂停和自动滚动。列表与内存有上限;需要完整历史时导出全部归档 JSON / BIN,留意归档失败提示。
- 能否看串口电气波形或精确硬件时间?
- 网页只能看到系统驱动提供的数据与浏览器操作时间;线路时序需要逻辑分析仪等硬件。