我需要使用 ESP32-S2 引脚 GPIO19 (USB_DM) 和 GPIO20 (USB_DP) 作为 UART,但是当我尝试时,模块不断重启。我认为是由于 USB 内部引脚上拉。
ESP32-C3 datasheet 中直接说USB 引脚的上拉电阻由USB_SERIAL_JTAG_DP_PULLUP 位控制,我们可以清除它来工作:
代码:
CLEAR_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_DP_PULLUP);
ESP32-S3 数据表什么也没说,但在这个
论坛上我找到了一个解决方案(经过测试和工作):
代码:
CLEAR_PERI_REG_MASK(USB_DEVICE_CONF0_REG, USB_DEVICE_USB_PAD_ENABLE);
ESP32-S2 应该怎么办?
我还注意到,如果不使用额外的系统调用,这可以部分工作,但仅在使用 TX 时有效。一旦我连接 RX,Wi-Fi 驱动程序就无法初始化。我正在使用外部 UART-USB 适配器来测试这种情况。