UART
UART(Universal Asynchronous Receiver/Transmitter)异步串行通信,TX/RX/GND 三线制,无需时钟线(双方约定波特率)。WS63 UART 支持三种传输模式:轮询、中断和 DMA。
DMA 模式下零 CPU 开销收发大批量数据,RX 回调可按字节数或超时触发。配置流程:引脚复用 → 波特率/数据位/停止位/校验位 → 中断/DMA 使能。适用串口日志、AT 指令、透传模块等场景。
头文件清单
接口清单
接口名称 功能简述 uapi_uart_init 初始化指定的UART串口 uapi_uart_deinit 去初始化指定的UART串口 uapi_uart_set_attr 设置UART基础配置参数 uapi_uart_get_attr 获取UART基础配置参数 uapi_uart_has_pending_transmissions 判断是否存在正在等待的传输 uapi_uart_rx_fifo_is_empty 判断RX FIFO是否为空 uapi_uart_tx_fifo_is_empty 判断TX FIFO是否为空 uapi_uart_register_rx_callback 注册接收数据回调函数 uapi_uart_unregister_rx_callback 去注册接收数据回调函数 uapi_uart_register_parity_error_callback 注册奇偶校验错误处理回调函数 uapi_uart_register_frame_error_callback 注册帧错误处理回调函数 uapi_uart_register_overrun_error_callback 注册溢出错误处理回调函数 uapi_uart_write 轮询模式发送数据 uapi_uart_write_nolock 轮询模式发送数据(不锁中断) uapi_uart_write_int 中断模式发送数据 uapi_uart_write_by_dma DMA模式发送数据 uapi_uart_read_by_dma DMA模式接收数据 uapi_uart_register_read_by_dma_callback 注册中断触发DMA搬运回调 uapi_uart_unregister_read_by_dma_callback 去注册中断触发DMA搬运回调 uapi_uart_read 轮询模式读取数据 uapi_uart_flush_rx_data 刷新UART接收Buffer中的数据 uapi_uart_update_rx_buff 更新UART接收Buffer的地址和长度 uapi_uart_suspend 挂起所有UART通道 uapi_uart_resume 恢复所有UART通道
Functions
uapi_uart_init
errcode_t uapi_uart_init(uart_bus_t bus, const uart_pin_config_t *pin_config, const uart_attr_t *attr, const uart_extra_attr_t *extra_attr, uart_buffer_config_t *uart_buffer_config)
初始化指定的UART串口,配置引脚、基础属性、扩展属性和接收缓冲区。
前置条件 无
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号,取值范围:UART_BUS_0 ~ UART_BUS_2 pin_config const uart_pin_config_t * IN 引脚配置结构体指针 attr const uart_attr_t * IN 基础属性配置结构体指针 extra_attr const uart_extra_attr_t * IN 扩展属性配置结构体指针 uart_buffer_config uart_buffer_config_t * IN 接收缓冲区配置结构体指针
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化 ERRCODE_UART_INIT_TRX_STATE_FAIL UART初始化收发状态失败 ERRCODE_UART_ADD_QUEUE_FAIL UART添加队列失败
参考案例 uart_demo.c 中 uart_init_config() 函数演示了poll模式初始化流程。
Kconfig配置 CONFIG_UART_BUSMODE_POLL / CONFIG_UART_BUSMODE_INT / CONFIG_UART_BUSMODE_DMA,不同模式控制不同初始化路径。
uapi_uart_deinit
去初始化指定的UART串口,释放资源。
前置条件 已调用 uapi_uart_init 完成初始化。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号,取值范围:UART_BUS_0 ~ UART_BUS_2
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 uart_demo.c 中 uart_deinit_config() 函数。
Kconfig配置 CONFIG_UART_BUSMODE_POLL / CONFIG_UART_BUSMODE_INT / CONFIG_UART_BUSMODE_DMA,不同模式控制不同去初始化路径。
uapi_uart_set_attr
errcode_t uapi_uart_set_attr(uart_bus_t bus, const uart_attr_t *attr, const uart_extra_attr_t *extra_attr)
设置UART基础配置参数,包括波特率、数据位、校验位、停止位等。
前置条件 已调用 uapi_uart_init 完成初始化。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 attr const uart_attr_t * IN 基础属性配置结构体指针 extra_attr const uart_extra_attr_t * IN 扩展属性配置结构体指针
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 uart_demo.c 中 uart_init_config() 函数。
uapi_uart_get_attr
获取UART当前基础配置参数。
前置条件 已调用 uapi_uart_init 完成初始化。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号
出参
名称 数据类型 输出说明 attr uart_attr_t * OUT extra_attr uart_extra_attr_t * OUT
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 无
uapi_uart_has_pending_transmissions
判断指定UART是否存在正在等待发送的数据。
前置条件 已调用 uapi_uart_init 完成初始化。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号
出参 无
返回值
返回值 文字含义 触发场景 true 存在等待发送的数据 false 无等待发送的数据
参考案例 无
uapi_uart_tx_fifo_is_empty
判断指定UART的发送FIFO是否为空。
前置条件 已调用 uapi_uart_init 完成初始化。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号
出参 无
返回值
返回值 文字含义 触发场景 true TX FIFO为空 false TX FIFO不为空
参考案例 无
uapi_uart_register_rx_callback
注册UART接收数据回调函数,当中断模式下接收到数据时触发回调。
前置条件 已调用 uapi_uart_init 完成初始化,且使用中断模式或DMA模式。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 callback uart_rx_callback_t IN 接收回调函数指针
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 uart_demo.c 中 uart_irq_mode_test() 函数演示了中断模式回调注册。
Kconfig配置 CONFIG_UART_BUSMODE_INT / CONFIG_UART_BUSMODE_DMA
uapi_uart_unregister_rx_callback
去注册UART接收数据回调函数。
前置条件 已调用 uapi_uart_register_rx_callback 注册回调。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 uart_demo.c 中 uart_deinit_config() 函数。
Kconfig配置 CONFIG_UART_BUSMODE_INT / CONFIG_UART_BUSMODE_DMA
uapi_uart_register_parity_error_callback
errcode_t uapi_uart_register_parity_error_callback(uart_bus_t bus, uart_parity_error_callback_t callback)
注册奇偶校验错误处理回调函数,当UART检测到奇偶校验错误时触发回调。
前置条件 已调用 uapi_uart_init 完成初始化,且配置了奇偶校验功能。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 callback uart_parity_error_callback_t IN 奇偶校验错误回调函数指针
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 无
Kconfig配置 CONFIG_UART_BUSMODE_INT / CONFIG_UART_BUSMODE_DMA
uapi_uart_register_frame_error_callback
errcode_t uapi_uart_register_frame_error_callback(uart_bus_t bus, uart_frame_error_callback_t callback)
注册帧错误处理回调函数,当UART检测到帧错误时触发回调。
前置条件 已调用 uapi_uart_init 完成初始化。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 callback uart_frame_error_callback_t IN 帧错误回调函数指针
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 无
Kconfig配置 CONFIG_UART_BUSMODE_INT / CONFIG_UART_BUSMODE_DMA
uapi_uart_write
以轮询模式发送数据,阻塞直到数据发送完成或超时。
前置条件 已调用 uapi_uart_init 完成初始化,且使用poll模式。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 buffer const uint8_t * IN 发送数据缓冲区指针 length uint32_t IN 发送数据长度(字节) timeout int32_t IN 超时时间(ms),-1表示永久等待
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 uart_demo.c 中 uart_poll_mode_test() 函数。
Kconfig配置 CONFIG_UART_BUSMODE_POLL
uapi_uart_write_nolock
errcode_t uapi_uart_write_nolock(uart_bus_t bus, const uint8_t *buffer, uint32_t length, int32_t timeout)
以轮询模式发送数据,不锁中断,适用于中断上下文中调用。
前置条件 已调用 uapi_uart_init 完成初始化,且使用poll模式。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 buffer const uint8_t * IN 发送数据缓冲区指针 length uint32_t IN 发送数据长度(字节) timeout int32_t IN 超时时间(ms),-1表示永久等待
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 无
Kconfig配置 CONFIG_UART_BUSMODE_POLL
uapi_uart_write_int
以中断模式发送数据,非阻塞方式,发送完成后触发中断。
前置条件 已调用 uapi_uart_init 完成初始化,且使用中断模式。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 buffer const uint8_t * IN 发送数据缓冲区指针 length uint32_t IN 发送数据长度(字节)
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 uart_demo.c 中 uart_irq_mode_test() 函数。
Kconfig配置 CONFIG_UART_BUSMODE_INT
uapi_uart_write_by_dma
以DMA模式发送数据,非阻塞方式,通过DMA搬运数据到UART发送FIFO。
前置条件 已调用 uapi_uart_init 完成初始化,且使用DMA模式。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 dma_config const uart_write_dma_config_t * IN DMA发送配置结构体指针
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化 UART_DMA_CFG_PARAM_INVALID DMA配置参数无效 UART_DMA_BUFF_NULL DMA缓冲区为空 UART_DMA_SHAKING_INVALID_OR_UART_FUNCS_NULL DMA握手无效或UART函数指针为空 UART_DMA_CONFIGURE_FAIL DMA配置失败 UART_DMA_START_TRANSFER_FAIL DMA启动传输失败 UART_DMA_TRANSFER_TIMEOUT DMA传输超时 UART_DMA_TRANSFER_ERROR DMA传输错误
参考案例 uart_demo.c 中 uart_dma_mode_test() 函数。
Kconfig配置 CONFIG_UART_BUSMODE_DMA
uapi_uart_read_by_dma
以DMA模式接收数据,非阻塞方式,通过DMA从UART接收FIFO搬运数据。
前置条件 已调用 uapi_uart_init 完成初始化,且使用DMA模式。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 dma_config const uart_write_dma_config_t * IN DMA接收配置结构体指针
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化 UART_DMA_CFG_PARAM_INVALID DMA配置参数无效 UART_DMA_BUFF_NULL DMA缓冲区为空 UART_DMA_SHAKING_INVALID_OR_UART_FUNCS_NULL DMA握手无效或UART函数指针为空 UART_DMA_CONFIGURE_FAIL DMA配置失败 UART_DMA_START_TRANSFER_FAIL DMA启动传输失败 UART_DMA_TRANSFER_TIMEOUT DMA传输超时 UART_DMA_TRANSFER_ERROR DMA传输错误
参考案例 uart_demo.c 中 uart_dma_mode_test() 函数。
Kconfig配置 CONFIG_UART_BUSMODE_DMA
uapi_uart_register_read_by_dma_callback
注册中断触发DMA搬运回调函数,当接收中断触发DMA搬运完成时调用。
前置条件 已调用 uapi_uart_init 完成初始化,且使用DMA模式。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 dma_cfg uart_write_dma_config_t * IN DMA配置结构体指针
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 uart_demo.c 中 uart_dma_mode_test() 函数。
Kconfig配置 CONFIG_UART_BUSMODE_DMA
uapi_uart_read
以轮询模式读取数据,阻塞直到读取到指定长度的数据或超时。
前置条件 已调用 uapi_uart_init 完成初始化,且使用poll模式。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 buffer const uint8_t * IN 接收数据缓冲区指针 length uint32_t IN 期望读取的数据长度(字节) timeout uint32_t IN 超时时间(ms)
出参 无
返回值 实际读取到的数据长度(字节),返回值类型为 int32_t。
参考案例 uart_demo.c 中 uart_poll_mode_test() 函数。
Kconfig配置 CONFIG_UART_BUSMODE_POLL
uapi_uart_flush_rx_data
刷新UART接收Buffer中的数据,清空接收缓冲区。
前置条件 已调用 uapi_uart_init 完成初始化。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 无
uapi_uart_update_rx_buff
更新UART接收Buffer的地址和长度。
前置条件 已调用 uapi_uart_init 完成初始化,且使用中断模式或DMA模式。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 rx_buffer uint8_t * IN 接收Buffer的地址 rx_buffer_size uint16_t IN 接收Buffer的长度
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 无
Kconfig配置 CONFIG_UART_BUSMODE_INT / CONFIG_UART_BUSMODE_DMA
uapi_uart_suspend
挂起所有UART通道,暂停UART操作。
前置条件 已调用 uapi_uart_init 完成初始化。
入参
名称 参数类型 详细说明 约束取值范围 arg uintptr_t IN 挂起所需要的参数
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功
参考案例 无
Kconfig配置 CONFIG_UART_SUPPORT_LPM
uapi_uart_resume
恢复所有UART通道,从挂起状态恢复UART操作。
前置条件 已调用 uapi_uart_suspend 挂起UART。
入参
名称 参数类型 详细说明 约束取值范围 arg uintptr_t IN 恢复所需要的参数
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功
参考案例 无
uapi_uart_unregister_read_by_dma_callback
去注册中断触发DMA搬运回调函数。
前置条件 已调用 uapi_uart_register_read_by_dma_callback 注册回调。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号
出参 无
返回值 无
参考案例 无
Kconfig配置 CONFIG_UART_SUPPORT_DMA / CONFIG_UART_SUPPORT_INT_TRIGGER_DMA
uapi_uart_register_overrun_error_callback
errcode_t uapi_uart_register_overrun_error_callback(uart_bus_t bus, uart_overrun_error_callback_t callback)
注册溢出错误处理回调函数,当UART检测到溢出错误时触发回调。
前置条件 已调用 uapi_uart_init 完成初始化。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号 callback uart_overrun_error_callback_t IN 溢出错误回调函数指针
出参 无
返回值
返回值 文字含义 触发场景 ERRCODE_SUCC 成功 ERRCODE_UART_NOT_INIT UART未初始化
参考案例 无
Kconfig配置 CONFIG_UART_BUSMODE_INT / CONFIG_UART_BUSMODE_DMA
uapi_uart_rx_fifo_is_empty
判断指定UART的接收FIFO是否为空。
前置条件 已调用 uapi_uart_init 完成初始化。
入参
名称 参数类型 详细说明 约束取值范围 bus uart_bus_t IN UART总线号
出参 无
返回值
返回值 文字含义 触发场景 true RX FIFO为空 false RX FIFO不为空
参考案例 无
Type definitions
uart_pin_config_t
UART引脚配置类型,等价于 hal_uart_pin_config_t。
uart_data_bit_t
UART数据位定义类型,等价于 hal_uart_data_bit_t。
uart_parity_t
UART奇偶校验位定义类型,等价于 hal_uart_parity_t。
uart_stop_bit_t
UART停止位定义类型,等价于 hal_uart_stop_bit_t。
uart_attr_t
UART基本属性定义类型,等价于 hal_uart_attr_t。
uart_extra_attr_t
UART扩展属性定义类型,等价于 hal_uart_extra_attr_t。
uart_flow_ctrl_t
UART流控类型定义,等价于 hal_uart_flow_ctrl_t。
uart_rx_callback_t
UART接收数据回调函数类型。在中断上下文中执行,接收缓冲区在回调返回后会被释放。
参数
参数名 类型 说明 buffer const void * 读取数据时用于存储数据的Buffer length uint16_t Buffer的长度 error bool true表示接收数据时产生了错误,false表示正常
uart_rx_by_dma_callback_t
typedef void (*uart_rx_by_dma_callback_t)(uart_bus_t bus, const void *buffer, uint32_t length, uart_write_dma_config_t *dma_cfg);
UART RX中断触发DMA搬运回调函数类型。在中断上下文中执行。
参数
参数名 类型 说明 bus uart_bus_t UART总线号 buffer const void * DMA搬运的目的地址 length uint32_t DMA搬运的数据长度 dma_cfg uart_write_dma_config_t * DMA配置结构体指针
Kconfig配置 CONFIG_UART_SUPPORT_DMA / CONFIG_UART_SUPPORT_INT_TRIGGER_DMA
uart_tx_callback_t
UART发送数据回调函数类型,在中断上下文中执行。
参数
参数名 类型 说明 buffer const void * 发送时的数据缓存 length uint32_t 发送时的数据长度 params const void * 传递的参数
Kconfig配置 CONFIG_UART_SUPPORT_TX
uart_error_callback_t
UART错误处理回调函数类型,在中断上下文中执行,执行完成后会自动释放内存。
参数
参数名 类型 说明 err_info uint32_t * 错误信息,每一个成员都是32-bit len uint32_t 错误信息的长度
Enumerations
uart_bus_t
typedef enum {
UART_BUS_0 = 0,
UART_BUS_1 = 1,
UART_BUS_2 = 2,
UART_BUS_NONE = UART_BUS_MAX_NUMBER
} uart_bus_t;
UART总线号枚举,定义于 platform_core.h。
枚举值 说明 UART_BUS_0 UART总线0 UART_BUS_1 UART总线1 UART_BUS_2 UART总线2 UART_BUS_NONE 无效总线号
uart_data_bit_t
typedef enum {
HAL_UART_DATA_BIT_5 = 0,
HAL_UART_DATA_BIT_6 = 1,
HAL_UART_DATA_BIT_7 = 2,
HAL_UART_DATA_BIT_8 = 3
} hal_uart_data_bit_t;
UART数据位枚举,定义于 hal_uart.h。
枚举值 说明 HAL_UART_DATA_BIT_5 5位数据位 HAL_UART_DATA_BIT_6 6位数据位 HAL_UART_DATA_BIT_7 7位数据位 HAL_UART_DATA_BIT_8 8位数据位
uart_parity_t
typedef enum {
HAL_UART_PARITY_NONE = 0,
HAL_UART_PARITY_ODD = 1,
HAL_UART_PARITY_EVEN = 2,
HAL_UART_PARITY_MARK = 3,
HAL_UART_PARITY_SPACE = 4
} hal_uart_parity_t;
UART奇偶校验位枚举,定义于 hal_uart.h。
枚举值 说明 HAL_UART_PARITY_NONE 无校验 HAL_UART_PARITY_ODD 奇校验 HAL_UART_PARITY_EVEN 偶校验 HAL_UART_PARITY_MARK Mark校验 HAL_UART_PARITY_SPACE Space校验
uart_stop_bit_t
UART停止位枚举,定义于 hal_uart.h。
枚举值 说明 HAL_UART_STOP_BIT_1 1位停止位 HAL_UART_STOP_BIT_2 2位停止位
uart_flow_ctrl_t
typedef enum {
HAL_UART_FLOW_CTRL_NONE = 0,
HAL_UART_FLOW_CTRL_RTS_CTS = 1,
HAL_UART_FLOW_CTRL_RTS = 2,
HAL_UART_FLOW_CTRL_CTS = 3
} hal_uart_flow_ctrl_t;
UART流控类型枚举,定义于 hal_uart.h。
枚举值 说明 HAL_UART_FLOW_CTRL_NONE 无流控 HAL_UART_FLOW_CTRL_RTS_CTS RTS/CTS硬件流控 HAL_UART_FLOW_CTRL_RTS 仅RTS流控 HAL_UART_FLOW_CTRL_CTS 仅CTS流控
uart_rx_condition_t
typedef enum uart_rx_condition {
UART_RX_CONDITION_FULL_OR_IDLE = (UART_RX_CONDITION_MASK_FULL | UART_RX_CONDITION_MASK_IDLE),
UART_RX_CONDITION_FULL_OR_SUFFICIENT_DATA = (UART_RX_CONDITION_MASK_FULL | UART_RX_CONDITION_MASK_SUFFICIENT_DATA),
UART_RX_CONDITION_FULL_OR_SUFFICIENT_DATA_OR_IDLE = (UART_RX_CONDITION_MASK_FULL | UART_RX_CONDITION_MASK_SUFFICIENT_DATA | UART_RX_CONDITION_MASK_IDLE)
} uart_rx_condition_t;
UART接收数据触发回调的条件枚举,定义于 uart.h。
枚举值 说明 UART_RX_CONDITION_FULL_OR_IDLE 接收缓存已满或接收暂停时触发回调 UART_RX_CONDITION_FULL_OR_SUFFICIENT_DATA 接收缓存已满或接收数据量达到指定长度时触发回调 UART_RX_CONDITION_FULL_OR_SUFFICIENT_DATA_OR_IDLE 接收缓存已满、接收数据量达到指定长度或接收暂停时触发回调
Kconfig配置 CONFIG_UART_SUPPORT_RX
Structures
uart_pin_config_t
typedef struct {
uint8_t tx_pin;
uint8_t rx_pin;
uint8_t rts_pin;
uint8_t cts_pin;
} hal_uart_pin_config_t;
UART引脚配置结构体,定义于 hal_uart.h。
成员 类型 说明 tx_pin uint8_t TX引脚编号 rx_pin uint8_t RX引脚编号 rts_pin uint8_t RTS引脚编号 cts_pin uint8_t CTS引脚编号
uart_attr_t
typedef struct {
uint32_t baud_rate;
uart_data_bit_t data_bits;
uart_parity_t parity;
uart_stop_bit_t stop_bits;
} hal_uart_attr_t;
UART基本属性配置结构体,定义于 hal_uart.h。
成员 类型 说明 baud_rate uint32_t 波特率 data_bits uart_data_bit_t 数据位 parity uart_parity_t 校验位 stop_bits uart_stop_bit_t 停止位
uart_extra_attr_t
typedef struct {
uart_flow_ctrl_t flow_ctrl;
bool dma_mode;
uint16_t rx_buf_size;
uint16_t tx_buf_size;
} hal_uart_extra_attr_t;
UART扩展属性配置结构体,定义于 hal_uart.h。
成员 类型 说明 flow_ctrl uart_flow_ctrl_t 流控类型 dma_mode bool 是否使用DMA模式 rx_buf_size uint16_t 接收缓冲区大小 tx_buf_size uint16_t 发送缓冲区大小
uart_buffer_config_t
UART缓冲区配置结构体,定义于 uart.h。
成员 类型 说明 rx_buffer void * 接收数据Buffer指针 rx_buffer_size size_t 接收Buffer的长度
uart_write_dma_config_t
typedef struct uart_write_dma_config {
uint8_t src_width;
uint8_t dest_width;
uint8_t burst_length;
uint8_t priority;
} uart_write_dma_config_t;
UART DMA发送配置结构体,定义于 uart.h。
成员 类型 说明 src_width uint8_t 源端传输数据宽度:0-1字节,1-2字节,2-4字节 dest_width uint8_t 目的端传输数据宽度:0-1字节,1-2字节,2-4字节 burst_length uint8_t burst长度:0-1,1-4,2-8,3-16 priority uint8_t 传输通道优先级(最小0,最大3)
Kconfig配置 CONFIG_UART_SUPPORT_TX / CONFIG_UART_SUPPORT_DMA