mcu_ab568x/app/platform/bsp/bsp_uart.h
2025-05-30 18:03:10 +08:00

150 lines
3.0 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _BSP_UART_H
#define _BSP_UART_H
#define UART_EXAMPLE_EN 0
//由于串口中断占用com区以及高速串口使用dma缓存根据需要开启相应模块
#define UART0_MODULE_EN 0
#define UART1_MODULE_EN 0
#define HSUART_MODULE_EN 0
typedef enum
{
UART_RTX_NONE = 0,
UART0_TX_PB3, //uart0 TX
UART0_TX_PA1,
UART0_TX_PA3,
UART0_TX_PE3,
UART0_TX_PE5,
UART0_TX_PE7,
UART0_TX_PF5,
UART0_TX_VUSB,
UART0_RX_PB4, //uart0 RX
UART0_RX_PA0,
UART0_RX_PA2,
UART0_RX_PE2,
UART0_RX_PE4,
UART0_RX_PE6,
UART0_RX_NONE0,
UART0_RX_NONE1,
HSUART_TX_PA1, //hs_uart TX
HSUART_TX_PA7,
HSUART_TX_PB1,
HSUART_TX_PB3,
HSUART_TX_PE0,
HSUART_TX_PE3,
HSUART_TX_PF5,
HSUART_TX_VUSB,
HSUART_RX_PA1, //hs_uart RX
HSUART_RX_PA7,
HSUART_RX_PB1,
HSUART_RX_PB3,
HSUART_RX_PE0,
HSUART_RX_PE3,
HSUART_RX_PF5,
HSUART_RX_VUSB,
UART1_TX_VUSB, //uart1 TX
UART1_TX_PA5,
UART1_TX_PA7,
UART1_TX_PB1,
UART1_TX_PB7,
UART1_TX_PE0,
UART1_TX_PF0,
UART1_TX_PF2,
UART1_RX_NONE, //uart1 RX
UART1_RX_PA4,
UART1_RX_PA6,
UART1_RX_PB0,
UART1_RX_PB6,
UART1_RX_PE1,
UART1_RX_PF1,
UART1_RX_PF3,
}uart_pin;
typedef enum
{
UART_NONE,
UART0,
HS_UART,
UART1,
UART_MAX,
} uart_type;
typedef void (*uart_isr_rece_callback_t)(uint8_t *buf, uint16_t len);
typedef struct _uart_cfg_t_
{
uart_pin tx; //指定tx pin
uart_pin rx; //指定rx pin, 未指定时默认使用单线模式(tx可做rx)
} uart_cfg_t;
/**
* @brief 串口初始化
* @param[in] cfg 对应的pin配置
* @param[in] baudrate 波特率
* @param[in] rece_handle 接收中断处理回调,需指定.com_text.uart
*
* @return 返回是否成功
**/
bool bsp_uart_init(const uart_cfg_t *cfg, uint32_t baudrate, uart_isr_rece_callback_t rece_handle);
/**
* @brief 设置波特率
* @param[in] cfg 对应的pin配置
* @param[in] baudrate 波特率
*
* @return 无
**/
void bsp_uart_baudrate_set(const uart_cfg_t *cfg, uint32_t baudrate);
/**
* @brief 发送单字节
* @param[in] cfg uart0 或 uart1 对应的pin配置
* @param[in] ch 需发送的字符
*
* @return 无
**/
void bsp_uart_send_byte(const uart_cfg_t *cfg, char ch);
/**
* @brief 发送字符串
* @param[in] cfg uart0 或 uart1 对应的pin配置
* @param[in] str 需发送的字符串
*
* @return 无
**/
void bsp_uart_send_str(const uart_cfg_t *cfg, char *str);
/**
* @brief 高速串口发送
* @param[in] buf 发送数据Buf
* @param[in] len 发送数据长度
*
* @return 无
**/
void hsuart_send(uint8_t *buf, uint16_t len);
#if UART_EXAMPLE_EN
/**
* @brief 串口收发测试实例
* @param 无
*
* @return 无
**/
void bsp_uart_example_process(void);
#endif
#endif