通用异步接收器/发送器(UART)是一种已知的组件,可处理各种广泛适用的接口(RS232,RS485,RS422,…)的时序要求。UART提供了一种广泛采用且廉价的方法来实现不同设备之间的全双工或半双工数据交换。
ESP32芯片上有三个UART控制器。它们与各种制造商的UART设备兼容。集成在ESP32中的所有UART控制器都具有相同的寄存器集,以便于编程和灵活性。在本文档中,这些控制器称为UART0,UART1和UART2。
功能概述
以下概述描述了用于在ESP32和某些其他UART设备之间建立通信的功能和数据类型。概述反映了编程ESP32的UART驱动程序时的典型工作流程,并分为以下几个部分:
1.设置通信参数 - 波特率,数据位,停止位等,
2.设置通信引脚 -连接另一个 UART的引脚
3.驱动程序安装 - 为 UART驱动程序分配ESP32的资源
4.运行UART通信 - 发送/接收数据
5.使用中断 - 触发特定通信事件的中断
6.删除驱动程序 - 如果不再需要 UART通信,则释放ESP32的资源
使UART工作的最小值是完成前四个步骤,后两个步骤是可选的。
驱动程序由对应于树UART控制器之一的标识符uart_port_t标识。这种识别存在于以下所有函数调用中。
1.设置通信参数
有两种方式来设置通信参数
第一种:通过调用uart_param_conifg()来配置 uart_config_t 结构中的参数
Configuration example :
const int uart_num=UART_NUM_2;
uart_config_t uart_config={
.baud_rate=115200,
.data_bits=UART_DATA_8_BITS,
.parity=UART_PARITY_DISABLE,
.stop_bits=UART_STOP_BITS_1,
.flow_ctrl=UART_HW_FLAWCTRL_CTS_RT