72 lines
2.3 KiB
C
72 lines
2.3 KiB
C
#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
|