rt-thread/bsp/bluetrum/libraries/hal_drivers/drv_usart.h

59 lines
1.0 KiB
C

/*
* Copyright (c) 2020-2021, Bluetrum Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2020-11-20 greedyhao first version
*/
#ifndef DRV_USART_H__
#define DRV_USART_H__
#include "drv_common.h"
#ifdef RT_USING_SERIAL
/* an32 config class */
struct ab32_uart_config
{
const char *name;
hal_sfr_t instance;
uint8_t mode;
uint16_t fifo_size;
uint8_t reserve[1];
// struct dma_config *dma_rx;
// struct dma_config *dma_tx;
};
/* ab32 uart driver class */
struct ab32_uart
{
struct uart_handle handle;
struct ab32_uart_config *config;
#ifdef RT_SERIAL_USING_DMA
struct
{
DMA_HandleTypeDef handle;
rt_size_t last_index;
} dma_rx;
struct
{
DMA_HandleTypeDef handle;
} dma_tx;
#endif
rt_uint16_t uart_dma_flag;
struct rt_serial_device serial;
rt_uint8_t *rx_buf;
rt_uint8_t rx_idx;
rt_uint8_t rx_idx_prev;
};
#endif
int rt_hw_usart_init(void);
#endif