返回串口调试

技术知识库 & 调试文档 65 篇硬核手册

Web Serial Pro Multi-Module Offline Documentation Hub

主题 同步中 本地离线 知识库总览
ID: SERIAL-BASIC-06 串口通信核心基础 (Core Serial Basics)

控制台握手 DTR/DSR 信号引脚在现代开发和烧录中的典型应用

#DTR DSR 信号控制#单片机 ISP 串口下载原理#ESP32 自动下载电路 故障

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 边沿经电容耦合到 RSTIO0(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 与「连接就重启」问题的入口。