技术新思考

返回

03-UART通信

UART通信相关知识

1、设置串口配置

也可以使用函数单个配置每个参数,参考链接如下:https://duruofu.github.io/ESP32-Guide/docs/guide/04.%E5%A4%96%E8%AE%BE%E5%AD%A6%E4%B9%A0/4.1-%E5%9F%BA%E7%A1%80%E5%A4%96%E8%AE%BE/4.1.2-UART/UART%E4%B8%B2%E5%8F%A3%E9%80%9A%E4%BF%A1.html 2、分配引脚 通信参数设置完成后,可以配置其他 UART 设备连接的 GPIO 管脚,调用函数 uart_set_pin(),指定配置 Tx、Rx、RTS 和 CTS 信号的 GPIO 管脚编号,如uart_set_pin(UART_NUM_2, 4, 5, 18, 19) 3、安装驱动程序 通信管脚设置完成后,请调用 uart_driver_install() 安装驱动程序并指定以下参数: ● Tx 环形缓冲区的大小 ● Rx 环形缓冲区的大小 ● 事件队列句柄和大小 ● 分配中断的标志 该函数将为 UART 驱动程序分配所需的内部资源

// Setup UART buffered IO with event queue const int uart_buffer_size = (1024 * 2); QueueHandle_t uart_queue; // Install UART driver using an event queue here ESP_ERROR_CHECK(uart_driver_install(UART_NUM_2, uart_buffer_size,
uart_buffer_size, 10, &uart_queue, 0)); 4、发送接收数据 使用函数uart_write_bytes() 和 uart_read_bytes() 分别进行发送数据以及接收数据。两个函数的参数均为(UART_NUM,发送内容首地址/接受缓冲区地址,长度)

5、中断 在新版本的 ESP32 SDK(如 ESP-IDF) 中,开发者不能再直接注册自定义的 UART 中断服务函数(ISR),也就是像旧版本那样使用 uart_isr_register() 来挂接自己的中断处理代码。 UART 驱动提供了一种便利的方法来处理特定的中断,即将中断包装成相应的事件。这些事件定义在 uart_event_type_t 中,FreeRTOS 队列功能可将这些事件报告给用户应用程序。