12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- * 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
|