ESP32 提供了三个工作在 3.3V TTL 电平的通用同步接收器和发送器 (UART) 端口,例如 UART0、UART1 和 UART2。这三个串行接口是硬件支持的。它们每个都暴露 4 个引脚:RX、TX、RTS 和 CTS。然而,Arduino IDE 仅使用 RX 和 TX 引脚。
默认情况下,只能使用 UART0 和 UART2。要使用 UART1,我们必须重新定义引脚,因为 UART1 的默认引脚(例如 GPIO9 和 GPIO10)在内部连接到 SPI 闪存。此外,在某些 ESP32 板上,它们甚至暴露在引出线头上。因此,如果不在 Arduino IDE 中重新分配管脚,我们不能直接使用 UART1。
下表指定了 ESP32 中可用的三个 UART 端口中每个端口的 RX 和 TX 引脚。
UART序号 |
Rx PIN |
Tx PIN |
是否可用 |
UART0 |
GPIO3 |
GPIO1 |
是 |
UART1 |
GPIO9 |
GPIO10 |
是, 但与SPI flash相关联需要重新定义 |
UART2 |
GPIO16 |
GPIO17 |
是 |
如上图所示,几乎所有资料都显示串口1的IO是GPIO9和10,,串口2使用的是GPIO16和17.如果你是用2.x的SDK这些都