Files
Frame-rate-optimization/Bsp/bsp_uart.h
2026-04-09 10:14:20 +08:00

72 lines
2.3 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
#include "at32a423.h"
#include "circular_buffer.h"
//串口1
#define USART1_TX_BUF_LEN 2 //发送缓冲区大小
#define USART1_RX_BUF_LEN 2 //接收的缓冲区大小
#define USART1_GPIOx GPIOA
#define BSP_USART1_TX_PIN GPIO_PINS_9 // 串口0TX的引脚
#define BSP_USART1_RX_PIN GPIO_PINS_10 // 串口0RX的引脚
//串口2
#define USART2_TX_BUF_LEN 2 //发送缓冲区大小
#define USART2_RX_BUF_LEN 2 //接收的缓冲区大小
#define USART2_GPIOx GPIOB
#define BSP_USART2_TX_PIN GPIO_PIN_10 // 串口2TX的引脚
#define BSP_USART2_RX_PIN GPIO_PIN_5 // 串口2RX的引脚GPIOC--5比较特殊
//串口3
#define USART3_TX_BUF_LEN 1024 //发送缓冲区大小
#define USART3_RX_BUF_LEN 1024 //接收的缓冲区大小
#define USART3_GPIOx GPIOB
#define BSP_USART3_TX_PIN GPIO_PINS_10 // 串口0TX的引脚
#define BSP_USART3_RX_PIN GPIO_PINS_11 // 串口0RX的引脚
//串口4
#define USART4_TX_BUF_LEN 2 //发送缓冲区大小
#define USART4_RX_BUF_LEN 2 //接收的缓冲区大小
#define USART4_GPIOx GPIOC
#define BSP_UART4_TX_PIN GPIO_PIN_12 // 串口0TX的引脚
#define BSP_UART4_RX_PIN GPIO_PIN_2 // 串口0RX的引脚GPIOD--2
//串口5
#define USART5_TX_BUF_LEN 2 //发送缓冲区大小
#define USART5_RX_BUF_LEN 2 //接收的缓冲区大小
#define USART5_GPIOx GPIOB
#define BSP_USART5_TX_PIN GPIO_PINS_3 // 串口0TX的引脚
#define BSP_USART5_RX_PIN GPIO_PINS_4 // 串口0RX的引脚
#define CIRCULAR_BUFFER_ENABLE 1 //开启循环串口缓冲区
#if CIRCULAR_BUFFER_ENABLE
typedef enum {
USART_0_TR,
USART_1_TR,
USART_2_TR,
USART_3_TR,
USART_4_TR,
USART_5_TR,
} USART_COM_ID_T;
uint8_t usart_tx_push(USART_COM_ID_T com_id, uint8_t *data, uint16_t len);
uint8_t usart_rx_recv(USART_COM_ID_T com_id, uint8_t *data, uint16_t len);
unsigned int usart_rx_read(USART_COM_ID_T com_id,uint8_t *data,uint16_t len);
unsigned char usart_rx_at(USART_COM_ID_T com_id, uint8_t offset);
void usart_rx_drop(USART_COM_ID_T com_id, uint8_t drop_lens);
int usart_rx_get_rx_data_count(USART_COM_ID_T com_id);
int usart_rx_probe(USART_COM_ID_T com_id);
#endif
#define ARRAYNUM(arr_name) (uint32_t)(sizeof(arr_name) / sizeof(*(arr_name)))
void uart1_init(uint32_t band_rate);
void uart3_init(uint32_t band_rate);
void uart5_init(uint32_t band_rate);
#endif