Files
stm32f407ve_black/Modules/uart/README.md
2026-01-22 16:36:56 +08:00

2.2 KiB
Raw Blame History

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));