| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /*
- * @File name : driver_uart.h
- * @Author : Bluetrum IOT Team
- * @Date : 2023-02-14
- * @Description : This file contains all the functions prototypes for the UART library.
- *
- * Copyright (c) by Bluetrum, All Rights Reserved.
- */
- #ifndef _DRIVER_UART_H
- #define _DRIVER_UART_H
- #include "driver_com.h"
- /**
- * @brief UART IT Flag Definition
- */
- typedef enum {
- UART_IT_TX = 0x01,
- UART_IT_RX = 0x02,
- UART_IT_ERR = 0x04,
- UART_IT_KEY = 0x08,
- UART_IT_RSTKEY = 0x10,
- } UART_IT_TYPEDEF;
- /**
- * @brief Rx Enable enumeration
- */
- typedef enum {
- UART_SEND_MODE = 0x00000000,
- UART_SEND_RECV_MODE = 0x00000080,
- } UART_MODE_TYPEDEF;
- /**
- * @brief One-line Mode Enumeration
- */
- typedef enum {
- UART_SEPARATE = 0x00000000,
- UART_ONE_LINE = 0x00000040,
- } UART_ONELINE_TYPEDEF;
- /**
- * @brief Clock select Enumeration
- */
- typedef enum {
- UART_SYSTEM_CLOCK = 0x00000000,
- UART_INC_CLOCK = 0x00000020,
- } UART_CLOCK_TYPEDEF;
- /**
- * @brief Stop Bit Select Enumeration
- */
- typedef enum {
- UART_STOP_BIT_1BIT = 0x00000000,
- UART_STOP_BIT_2BIT = 0x00000010,
- } UART_STOP_BIT_TYPEDEF;
- /**
- * @brief Word Length Enumeration
- */
- typedef enum {
- UART_WORD_LENGTH_8b = 0x00000000,
- UART_WORD_LENGTH_9b = 0x00000002,
- } UART_WORD_LENGTH;
- /**
- * @brief Baud Fix Enumeration, only UDET Can Use.
- */
- typedef enum {
- UART_BAUD_AUTO = 0x00000000,
- UART_BAUD_FIX = 0x00000020,
- } UART_BAUD_FIX_TYPEDEF;
- /**
- * @brief UART Init Structure
- */
- typedef struct {
- uint32_t baud;
- UART_MODE_TYPEDEF mode;
- UART_ONELINE_TYPEDEF one_line_enable;
- UART_CLOCK_TYPEDEF clock_source;
- UART_STOP_BIT_TYPEDEF stop_bits;
- UART_WORD_LENGTH word_len;
- /* Only UDET */
- UART_BAUD_FIX_TYPEDEF baud_fix;
- } uart_init_typedef;
- /************************* Function used to configure UART *************************/
- void uart_init(uart_typedef *uartx, uart_init_typedef *uart_init_struct);
- void uart_deinit(uart_typedef *uartx);
- void uart_cmd(uart_typedef *uartx, FUNCTIONAL_STATE state);
- void uart_send_data(uart_typedef *uartx, uint16_t data);
- uint16_t uart_receive_data(uart_typedef *uartx);
- void uart_pic_config(uart_typedef *uartx, isr_t isr, int pr, UART_IT_TYPEDEF interrupt_type, FUNCTIONAL_STATE state);
- FLAG_STATE uart_get_flag(uart_typedef *uartx, UART_IT_TYPEDEF interrupt_type);
- void uart_clear_flag(uart_typedef *uartx, UART_IT_TYPEDEF interrupt_type);
- void uart_baud_config(uart_typedef *uartx, uint32_t baud);
- #endif // _DRIVER_UART_H
|