ID: SERIAL-BASIC-06
串口通信核心基础 (Core Serial Basics)
控制台握手 DTR/DSR 信号引脚在现代开发和烧录中的典型应用
打开在线串口调试工具
需 Chrome / Edge 桌面浏览器 · 串口数据仅在本地处理
DTR(Data Terminal Ready) 与 DSR(Data Set Ready) 属于传统 Modem 握手线。在现代 USB-UART 上,它们常被「复用」做单片机自动下载与复位——这也是「一点连接串口,设备就重启」的根源。
先说结论 | 现象 | 常见原因 | 处理 | |------|----------|------| | 一点连接就复位 | DTR/RTS 经电容打 RST/IO0 | 关 DTR 或断自动下载跳线 | | 连上无法下载 | DTR/RTS 未接到 RST/IO0 | 查自动下载电路/排针 | | 仅某工具会复位 | 工具对 setSignals 默认不同 | 对比桌面工具与网页工具设置 | | 流控失败 | 把 DTR 当 RTS 用 | 流控是 RTS/CTS,见流控文 |
自动下载电路在干什么
很多 Arduino / ESP 开发板:
- USB 桥的 DTR 或 RTS 边沿经电容耦合到 RST 与 IO0(BOOT)。
- 主机 open 串口时翻转 DTR → 芯片进入下载模式或复位。
- 所以「打开串口 = 一次复位」在硬件上是设计,不是浏览器 Bug。
调试 vs 下载:两种诉求 1. 纯日志调试、不想复位: - 工具里关闭 DTR(若暴露); - 或硬件断开自动下载相关跳线/0Ω; - 或改固件/电路让 DTR 不进 RST(产品化时常做)。 2. 需要 ISP 一键下载: - 反而要保证 DTR/RTS 布线与电容正确; - 电容容值不对会导致「偶发进不了下载」。
Web Serial / 本站
Web Serial 可用 port.setSignals({ dataTerminalReady, requestToSend }) 控制电平(视系统与驱动支持)。本站若暴露 DTR/RTS 开关,联调时可对比:
1. 打开 https://www.serialpro.top/ 连接端口。
2. 观察设备是否复位;对比 Arduino IDE / esptool 行为。
3. 需要下载时:保持自动下载电路完整;仅日志时尝试拉低/关闭 DTR。
与 RTS/CTS 流控别混 | 信号 | 典型用途 | |------|----------| | RTS/CTS | 字节级硬件流控,防 FIFO 溢出 | | DTR/DSR | 就绪/Modem 遗留;现多用于复位与下载 | | DCD/RI | 载波/振铃,现代调试少用 | 丢包优先查流控与波特率;「一点就重启」优先查 DTR 电路。
现象对照清单 - 连接即复位:自动下载在工作。 - 连接后无法下载:DTR/RTS 未接到 RST/IO0 或电容不对。 - 仅网页复位、其它工具不:默认 setSignals 不同。 - 复位后程序跑飞:看 BOOT 脚是否被拉进下载模式。
相关文档
- 硬件流控 RTS/CTS:/help/serial-basic-05
- ESP32 / 下载:/help/embed 相关文与芯片驱动
- 回环自测:/help/serial-basic-10
把自动下载电路画进原理图备注,减少软件同学背锅。理解 DTR/DSR,是 ISP 与「连接就重启」问题的入口。
打开在线串口调试工具
在本页完成排查后,用网页串口直接验证收发