web-serial-debug 是一款基于浏览器的纯网页串口调试工具,由 itldg 开发维护。使用纯 HTML/CSS/JavaScript 开发,调用浏览器 Web Serial API 实现串口通信,无需安装任何客户端。遵循 Apache-2.0 许可证开源分发。
| 文件 | 用途 | 格式 |
|---|---|---|
| `commands/` | 快捷指令目录 | JSON/TXT |
| `scripts/` | 自定义脚本目录 | JavaScript |
| `data/` | 数据缓存目录 | JSON |
| 技术 | 用途 |
|---|---|
| HTML5/CSS3 | 页面结构和样式 |
| JavaScript | 交互逻辑和数据处理 |
| ANSI Up | ANSI 颜色解析 |
| localStorage | 本地配置存储 |
| 场景 | 优势 |
|---|---|
| 跨平台调试 | Windows/macOS/Linux 通用 |
| 不便装驱动的环境 | 仅需 Chromium 浏览器 |
| 快速分享 | 在线版链接分享,无需安装 |
| 教学演示 | 纯网页,易于展示和演示 |
| 脚本扩展 | JavaScript 脚本灵活扩展功能 |
| 版本 | 日期 | 主要变更 |
|---|---|---|
| v2.x | 2023 | 新增脚本支持、分组功能 |
| v1.x | 2022 | 基础串口收发、自动重连 |
注意:Web Serial API 需要 HTTPS 或 localhost 环境才能正常工作。Chrome/Edge 浏览器需在 `chrome://flags` 中启用 Web Serial API。
| 模式 | 适用场景 | 发送输入示例 | 接收显示示例 |
|---|---|---|---|
| TEXT | 文本协议、中文 | `你好设备` | `设备就绪` |
| ANSI | 带颜色代码的终端数据 | 任意 | 彩色显示 |
| 功能 | 操作 | 说明 |
|---|---|---|
| 暂停 | 点击 `暂停` 按钮 | 冻结显示,后台仍收数 |
| 清空 | 点击 `清空` | 仅清界面,不影响缓存 |
| 分包合并 | 自动合并分包数据 | 设定超时时间自动合并 |
| 功能 | 操作 | 说明 |
|---|---|---|
| 定时发送 | 设置 `发送间隔(ms)` | 按间隔循环发送 |
| HEX/Text 切换 | 点击模式按钮 | 切换发送模式 |
脚本使用 JavaScript 编写,通过 `postMessage` 和 `onmessage` 进行数据通讯。
// 示例:自动处理接收到的数据
addEventListener('message', function ({data}) {
if (data.type == 'uart_receive') {
// 打印日志
postMessage({type: 'log', data: '消息长度:' + data.data.length});
// 原文答复
postMessage({type: 'uart_send', data: data.data});
}
});
// 定时发送
setInterval(function() {
postMessage({type: 'uart_send_txt', data: 'hello world'});
}, 1000);
接收数据格式(`onmessage`):
{
"type": "uart_receive",
"data": [0, 1]
}
发送数据格式(`postMessage`):
{
"type": "uart_send",
"data": [0, 1]
}
| TYPE 类型 | DATA 数据格式 | 说明 |
|---|---|---|
| `uart_send_txt` | String | 发送文本数据 |
| `uart_send_hex` | String | 发送十六进制字符串 |
| `log` | String | 打印日志 |
web-serial-debug/
├─ index.html
├─ config.json # 用户配置
├─ commands/ # 快捷指令目录
│ ├─ default.json # 默认指令集
│ └─ custom.json # 自定义指令集
├─ scripts/ # 自定义脚本目录
│ └─ auto_reply.js # 自动回复脚本
└─ data/ # 数据缓存目录
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 串口打不开 | 权限不足/端口被占用 | 1. 检查浏览器权限 2. 关闭其他占用软件 |
| 收不到数据 | 波特率不匹配/线序错误 | 1. 核对设备手册 2. 检查 TX/RX 接线 |
| 显示乱码 | 编码模式不匹配 | 1. 切换 HEX/TEXT 模式 2. 检查数据格式 |
| 脚本不执行 | 脚本语法错误 | 1. 检查控制台错误 2. 确认 postMessage 格式 |
| 配置丢失 | 浏览器清除数据 | 1. 导出备份配置 2. 关闭隐私模式 |
| 自动重连失败 | 设备断开/驱动问题 | 1. 检查设备连接 2. 重新选择设备 |
# 使用 Python 静态服务器
cd D:\工业协议\商业产品\开源工具包\web-serial-debug
python -m http.server 8080
# 访问 http://localhost:8080
| 快捷键 | 功能 |
|---|---|
| `Ctrl+O` | 打开串口 |
| `Ctrl+Shift+O` | 关闭串口 |
| `Enter` | 发送数据 |
| `Ctrl+L` | 清空接收区 |
| `Ctrl+F` | 搜索接收区 |
| `Ctrl+E` | 导出日志 |
| `Ctrl+S` | 保存配置 |
提示:本教程基于 web-serial-debug 最新版编写,界面细节可能随版本微调。遇到未覆盖场景,请参考:GitHub 项目页 或在线文档: https://www.itldg.com/web_serial_debug/