UART模块
功能描述
UART模块用于实现串口通信功能,支持数据发送和接收,提供了简单易用的API接口。
依赖关系
- HAL层:hal_uart
接口说明
数据结构
uart_config_t
UART配置结构体,用于初始化UART模块
typedef struct {
uint32_t baudrate; /*!< 波特率 */
hal_uart_parity_t parity; /*!< 校验位 */
hal_uart_stopbits_t stopbits; /*!< 停止位 */
hal_uart_databits_t databits; /*!< 数据位 */
} uart_config_t;
uart_t
UART实例结构体,用于管理UART状态
typedef struct {
uart_config_t config; /*!< UART配置 */
uint8_t initialized; /*!< 初始化状态 */
} uart_t;
函数接口
uart_init
void uart_init(void);
初始化UART模块
参数:无
返回值:无
uart_config
void uart_config(const uart_config_t *config);
配置UART参数
参数:
- config: UART配置结构体指针
返回值:无
uart_send
void uart_send(const uint8_t *data, size_t length);
发送数据
参数:
- data: 数据缓冲区指针
- length: 数据长度
返回值:无
uart_send_string
void uart_send_string(const char *str);
发送字符串
参数:
- str: 字符串指针
返回值:无
uart_receive
size_t uart_receive(uint8_t *data, size_t length);
接收数据
参数:
- data: 数据缓冲区指针
- length: 要接收的数据长度
返回值:实际接收的数据长度
uart_is_tx_ready
uint8_t uart_is_tx_ready(void);
检查UART是否准备好发送
参数:无
返回值:
- 1: 准备好
- 0: 未准备好
uart_is_rx_ready
uint8_t uart_is_rx_ready(void);
检查UART是否有数据可读
参数:无
返回值:
- 1: 有数据可读
- 0: 无数据可读
使用示例
/* 初始化UART模块 */
uart_init();
/* 发送字符串 */
uart_send_string("Hello, UART!\r\n");
/* 发送数据 */
uint8_t data[] = {0x01, 0x02, 0x03};
uart_send(data, sizeof(data));
/* 接收数据 */
uint8_t buffer[10];
size_t len = uart_receive(buffer, sizeof(buffer));