Files
2023-09-06 10:08:11 +08:00

54 lines
1.5 KiB
C

/********************************** (C) COPYRIGHT *******************************
* File Name : bsp_uart.h
* Author : WCH
* Version : V1.0.0
* Date : 2022/05/10
* Description : uart cfg.
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
#ifndef _BSP_UART_H_
#define _BSP_UART_H_
#include "ch32v20x.h"
#include "net_config.h"
/* Global define */
#define BAUD_RATE 921600
#define size(a) (sizeof(a) / sizeof(*(a)))
#define MIN(X,Y) ((X) < (Y) ? (X) : (Y))
#define UART_RX_DMA_SIZE RECE_BUF_LEN
#define ETH_RECEIVE_SIZE RECE_BUF_LEN
#define UART_TX_BUF_NUM 3
typedef enum { IDLE = 0, BUSY = !IDLE} Uart_TX_DMA_State;
struct uart_data
{
uint8_t (*TX_buffer)[ETH_RECEIVE_SIZE]; /* receive from eth */
uint8_t *RX_buffer; /* receive from uart */
uint16_t *TX_data_length;
uint16_t RX_data_length;
uint16_t last_RX_DMA_length;
uint32_t rx_read;
uint32_t rx_write;
uint8_t tx_read;
uint8_t tx_write;
uint8_t tx_remainBuffNum;
Uart_TX_DMA_State uart_tx_dma_state; /* 0 -> idle, 1 -> busy */
};
extern struct uart_data uart_data_t;
extern void BSP_Uart_Init(uint32_t baudrate );
#endif /* end of bsp_uart.h */