| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- /*
- * @File name : driver_hsuart.h
- * @Author : Bluetrum IOT Team
- * @Date : 2023-02-14
- * @Description : This file contains all the functions prototypes for the HSUART library.
- *
- * Copyright (c) by Bluetrum, All Rights Reserved.
- */
- #ifndef _DRIVER_HSUART_H
- #define _DRIVER_HSUART_H
- #include "driver_com.h"
- /**
- * @brief HSUART IT Flag Definition
- */
- typedef enum {
- HSUART_IT_RX_DMA_HF = 0x01,
- HSUART_IT_RX_TMR_OV = 0x02,
- HSUART_IT_TX = 0x04,
- HSUART_IT_RX = 0x08,
- } HSUART_IT_TYPEDEF;
- /**
- * @brief TX Stop Bit Enumeration
- */
- typedef enum {
- HSUT_STOP_BIT_1BIT = 0x00000000,
- HSUT_STOP_BIT_2BIT = 0x00000200,
- } HSUT_TX_STOP_BIT_TYPEDEF;
- /**
- * @brief TX Word Length Enumeration
- */
- typedef enum {
- HSUT_TX_LENGTH_8b = 0x00000000,
- HSUT_TX_LENGTH_9b = 0x00000100,
- } HSUT_TX_WORD_LENGTH;
- /**
- * @brief TX Transmit Mode Enumeration
- */
- typedef enum {
- HSUT_TX_BUF_MODE = 0x00000000,
- HSUT_TX_DMA_MODE = 0x00000080,
- } HSUT_TX_MODE;
- /**
- * @brief RX Word Length Enumeration
- */
- typedef enum {
- HSUT_RX_LENGTH_8b = 0x00000000,
- HSUT_RX_LENGTH_9b = 0x00000020,
- } HSUT_RX_WORD_LENGTH;
- /**
- * @brief RX Transmit Mode Enumeration
- */
- typedef enum {
- HSUT_RX_BUF_MODE = 0x00000000,
- HSUT_RX_DMA_MODE = 0x00000010,
- } HSUT_RX_MODE;
- /**
- * @brief Receive or Transmit Enumeration
- */
- typedef enum {
- HSUT_RECEIVE = 0x00000001,
- HSUT_TRANSMIT = 0x00000002,
- } HSUT_REC_TRA_CMD;
- /**
- * @brief One-line Mode Enumeration
- */
- typedef enum {
- HSUT_ONELINE_DIS = 0x00000000,
- HSUT_ONELINE_EN = 0x00040000,
- } HSUT_ONELINE_TYPEDEF;
- /**
- * @brief Rx DMA Mode Loop Buf Enumeration
- */
- typedef enum {
- HSUT_DMA_BUF_SINGLE = 0x00000000,
- HSUT_DMA_BUF_LOOP = 0x00000040,
- } HSUT_DMA_BUF_TYPEDEF;
- /**
- * @brief Clock Selection
- */
- typedef enum {
- HSUT_24M_CLK,
- HSUT_48M_CLK,
- HSUT_PLLDIV4_CLK,
- } HSUT_CLK_TYPEDEF;
- /**
- * @brief HSUART Init Structure
- */
- typedef struct {
- uint32_t baud;
- HSUT_TX_STOP_BIT_TYPEDEF tx_stop_bit;
- HSUT_TX_WORD_LENGTH tx_word_len;
- HSUT_RX_WORD_LENGTH rx_word_len;
- HSUT_TX_MODE tx_mode;
- HSUT_RX_MODE rx_mode;
- HSUT_DMA_BUF_TYPEDEF rx_dma_buf_mode;
- HSUT_CLK_TYPEDEF clk_source;
- HSUT_ONELINE_TYPEDEF one_line_en;
- } hsuart_init_typedef;
- //--------------- Function used to configure hsuart ----------------//
- void hsuart_init(hsuart_init_typedef *hsuart_init_struct);
- void hsuart_deinit(void);
- void hsuart_cmd(HSUT_REC_TRA_CMD rec_tra_sel, FUNCTIONAL_STATE state);
- void hsuart_send_data(uint16_t data);
- uint16_t hsuart_receive_data(void);
- STATUS_STATE hsuart_receive_data_from_fifo(uint8_t *buf, uint8_t len);
- uint16_t hsuart_get_fifo_counter(void);
- void hsuart_clear_fifo_counter(void);
- void hsuart_baud_config(uint32_t baud);
- //---------- Function used to configure hsuart interrupt -----------//
- void hsuart_pic_config(isr_t isr, int pr, HSUART_IT_TYPEDEF interrupt_type, FUNCTIONAL_STATE state);
- FLAG_STATE hsuart_get_flag(HSUART_IT_TYPEDEF interrupt_type);
- void hsuart_clear_flag(HSUART_IT_TYPEDEF interrupt_type);
- void hsuart_rx_idle_config(uint16_t idle_time, FUNCTIONAL_STATE state);
- //------------- Function used to configure hsuart DMA --------------//
- void hsuart_dma_start(HSUT_REC_TRA_CMD rec_tra_sel, uint32_t addr, uint16_t len);
- void hsuart_dma_stop(HSUT_REC_TRA_CMD rec_tra_sel);
- #endif // _DRIVER_HSUART_H
|