**Web Serial API** 让网页在用户授权下直接读写本机串口(USB-UART、部分板载 COM),从而做出免安装的在线串口调试助手。Chrome / Edge 等 Chromium 桌面浏览器支持;Firefox / Safari 目前基本不可用。
### 最小闭环
- `navigator.serial.requestPort()` — 用户手势触发,弹出端口选择。
- `await port.open({ baudRate: 115200, dataBits: 8, stopBits: 1, parity: 'none' })`
- `port.readable.getReader()` 循环 `read()` 收数据。
- `port.writable.getWriter()` 写 `Uint8Array` 发数据。
- 关闭时 cancel 读循环 → releaseLock → `port.close()`。
### 安全约束
- 必须在 **Secure Context**:HTTPS 或 localhost。
- 授权按源(origin)隔离,可 `getPorts()` 重连、`forget()` 撤销。
- 串口数据在浏览器进程内处理;成熟工具不会把业务字节上传服务器。
### 和传统串口助手对比
| 点 | Web Serial | 桌面 exe | |---|---|---| | 安装 | 免装 | 需下载 | | 权限 | 细、可撤销 | 系统级更高 | | 多平台 | 有浏览器即可 | 分系统打包 | | 离线现场 | 可配合 PWA | 天然本地 |
### 上手建议
直接打开 Web Serial Pro 一类工具连接 CH340/CP2102 设备,用 HEX/ASCII 收发验证。自己开发时先跑通 requestPort + 读写循环,再加分帧、日志与预设指令。
Web Serial 把「串口调试」从装软件变成打开网页——前提是 Chromium + 安全上下文 + 用户点击授权。 ## 为什么选择网页串口(获客说明)
- **免安装:** 临时电脑、实验室公共机无需装 SSCOM。
- **可分享:** 发送链接即可让同事用同一工具。
- **本地收发:** 业务数据默认不因调试而上传到业务服务器。
## 开始使用
- 电脑版 Chrome 或 Edge 打开本站首页。
- 点击连接,选择 CH340/CP2102 等端口。
- 设置波特率,ASCII 或 HEX 收发。
- 遇到乱码见《串口调试乱码怎么解决》;没有端口见《CH340 驱动》。
## 限制(诚实说明,利于信任与转化)
- 需要 Chromium 桌面浏览器与用户手势授权。
- 移动端 Safari/微信内置浏览器通常不可用。
- 系统仍需正确安装 USB 串口驱动。
// 1. 请求权限并连接
const port = await navigator.serial.requestPort();
await port.open({ baudRate: 115200 });
// 2. 异步接收流
const reader = port.readable.getReader();
try {
while (true) {
const { value, done } = await reader.read();
if (done) break;
console.log("收到字节:", value);
}
} finally {
reader.releaseLock();
}