说明:
ESP8266EX 上电时候 U0TXD 默认会输出⼀些打印信息,对此敏感的应⽤可以使⽤内部引脚交换功能 (UART SWAP)。在初始化的时候,将 U0TXD, U0RXD 分别与 U0RTS (GPIO15),U0CTS (GPIO13) 进⾏交换。交换后,GPIO15 和 GPIO13 将作为交换后的 U0TXD 和 U0RXD 对应连接⾄ MCU 的 RXD 和 TXD 进⾏串⼝通信。相应参考电路如图 1-10b 所示。可参考《ESP8266 硬件设计指南》上的 P10~P11 页说明。
理由:
由于 GPIO15 作为 ESP8266EX 的 strap pin,上电需为低电平。因此,为防⽌上电 GPIO15 被拉⾼因⽽进⼊错误的 boot 模式,这⾥做了⼀个隔离处理。即,上电 Q1 默认不导通,GPIO15 未连接⾄ MCU 的 RXD。待程序跑起来之后,可通过 GPIO5 控制 Q1 导通。如此可实现 GPIO15 的上电隔离。
使用 ESP8266 UART1(GPIO2)作为程序日志输出串口,可进行如下配置:
menuconfig -> Component Config -> Common ESP-related
可基于 ESP8266_RTOS_SDK/examples/peripherals/uart_events 例程来测试,在 menuconfig 中开启如下设置:
Component config -> Common ESP-related -> Swap UART0 I/O pins
或者在 uart_driver_install() 函数之后调用 uart_enable_swap() 函数
此外,若使用的是 ESP8266-NONOS-SDK ,则不支持通过menuconfig 配置选项来开启 Swap Uart 功能,只需要在 UART 初始化代码之后,调用 system_uart_swap()
函数即可,具体说明请参见《ESP8266 技术参考》。
在 UART0 初始化函数之后调用 system_uart_swap()
函数
同时要求 GPIO5
在芯片上电之后输出高电平
GPIO5 初始化代码如下:
PIN_PULLUP_EN(PERIPHS_IO_MUX_GPIO5_U); //设置 GPIO5 上拉使能
GPIO_OUTPUT_SET(GPIO_ID_PIN(5), 1); // 设置 GPIO5 输出高电平