WebTTY(浏览器里点一下,STM32、LoRa、Arduino全连上了?真没装任何软件)

WebTTY(浏览器里点一下,STM32、LoRa、Arduino全连上了?真没装任何软件)
浏览器里点一下,STM32、LoRa、Arduino全连上了?真没装任何软件


上周三晚上赶一个STM32温控器的OTA验证,手边笔记本刚重装系统——串口助手、ST-LINK Utility、SecureCRT全得重下,光Chrome扩展就卡在“正在安装Web Serial API支持”转了两分钟。结果一搜,顺手点开 https://qdsang.github.io/web-serial-debug/,连上CH340,发了条AT+RST,串口日志刷刷往上跑…我盯着那行绿色的OK愣了三秒:这玩意儿真不用装驱动?真不占内存?真能在MacBook上连STLink V2-1的SWD口?


它压根不是传统意义的“调试工具”。没有安装包,没有管理员权限弹窗,甚至没走USB CDC协议——靠的是Chrome/Edge 89+默认启用的Web Serial API,浏览器自己当底层通信栈。你打开页面,点“连接设备”,系统弹出的设备选择框里,赫然列着STM32 STLINK、CP2102、FTDI USB Serial Device,连虚拟串口/dev/tty.usbmodem1101都自动识别。选完直接点“打开”,连握手都不用等——这种丝滑,是十年前用SecureCRT时连想都不敢想的。


我试过用它跑自动化校验:写了个20行JS脚本,自动发送AT+VER→等待+VER:响应→截取固件版本号→比对预设值→失败就标红并暂停。整个流程在网页里跑完,导出的log是标准CSV,Excel里双击就能看波动曲线。隔壁工位老张拿它教大一学生做Arduino串口实验,投影仪连上Chrome,学生自己带手机扫码进页面,敲Serial.println(millis()),实时波形图就在屏幕上跳——没人再为IDE下载失败、端口识别不了、驱动黄叹号抓狂。


GitHub仓库里代码很干净,Vite+React搭的架子,build完才427KB。更绝的是它留了Tauri封装入口——你真想要个“应用图标”,yarn tauri build打个包,生成的.app或.exe连系统托盘都带。但大多数时候,你根本懒得打包。我常用Edge标签页固定住那个URL,右键“添加到任务栏”,和微信、钉钉并排躺着。有次在Linux虚拟机里调试ESP32-C3的Wi-Fi AT指令,顺手切到宿主机Chrome连上USB转串口,发了7轮AT+CIPSTART="TCP","api.example.com",80,响应延迟全记在左侧时间戳里,导出后发现第4次超时237ms,回头一查果然是DNS缓存没刷。


源码托管在 https://github.com/qdsang/web-serial-debug,MIT+GPL-3.0双许可,commit记录从2022年10月持续到现在,最近一次推送改了WebUSB设备枚举的容错逻辑。我扒过几处关键代码,比如串口读取那段,没用onreceive监听器,而是while循环里套readable.getReader().read(),配合AbortController做超时中断——这种写法,明显是踩过无数undefined is not iterable坑之后才定下来的。


WebTTY(浏览器里点一下,STM32、LoRa、Arduino全连上了?真没装任何软件)

昨天凌晨两点,我拿它连着nRF52840 Dongle跑BLE DFU验证,收发窗口里HEX和ASCII来回切,右上角时间显示02:17:04,突然弹出一行[SWD] Target entered debug state。那一刻没截图,也没发朋友圈,就默默把那个网页标签页设为了首页。


你知道吗,有些工具用一次就再也回不去了。

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有