#ifndef CORE_INCLUDE_IVEC_MCAL_UART_H_ #define CORE_INCLUDE_IVEC_MCAL_UART_H_ #include "ti_msp_dl_config.h" #include "../utils/utils.h" #include #include "ivec_mcal_common.h" typedef enum { IVEC_MCAL_UART_BAUD_AUTO = 0, IVEC_MCAL_UART_BAUD_2400 = 2400, IVEC_MCAL_UART_BAUD_4800 = 4800, IVEC_MCAL_UART_BAUD_9600 = 9600, IVEC_MCAL_UART_BAUD_14400 = 14400, IVEC_MCAL_UART_BAUD_19200 = 19200, IVEC_MCAL_UART_BAUD_28800 = 28800, IVEC_MCAL_UART_BAUD_33600 = 33600, IVEC_MCAL_UART_BAUD_38400 = 38400, IVEC_MCAL_UART_BAUD_57600 = 57600, IVEC_MCAL_UART_BAUD_115200 = 115200, IVEC_MCAL_UART_BAUD_230400 = 230400, IVEC_MCAL_UART_BAUD_460800 = 460800, IVEC_MCAL_UART_BAUD_921600 = 921600, IVEC_MCAL_UART_BAUD_1000000 = 1000000, IVEC_MCAL_UART_BAUD_1843200 = 1843200, IVEC_MCAL_UART_BAUD_2000000 = 2000000, IVEC_MCAL_UART_BAUD_2100000 = 2100000, IVEC_MCAL_UART_BAUD_3686400 = 3686400, IVEC_MCAL_UART_BAUD_4000000 = 4000000, IVEC_MCAL_UART_BAUD_4468750 = 4468750 } IVEC_McalUartBaudRate_e; typedef enum { IVEC_MCAL_UART_DATA_BIT_7 = 7, IVEC_MCAL_UART_DATA_BIT_8 = 8 } IVEC_McalUartDataBit_e; typedef enum { IVEC_MCAL_UART_STOP_BIT_1 = 1, IVEC_MCAL_UART_STOP_BIT_2 = 2 } IVEC_McalUartStopBit_e; typedef enum { IVEC_MCAL_UART_PARITY_NONE, IVEC_MCAL_UART_PARITY_ODD, IVEC_MCAL_UART_PARITY_EVEN } IVEC_McalUartParityBit_e; typedef enum { IVEC_MCAL_UART_FC_NONE = 0, IVEC_MCAL_UART_FC_HW } IVEC_McalUartFlowCtrl_e; typedef enum{ IVEC_MCAL_UART_PORT_1=0, IVEC_MCAL_UART_PORT_2, IVEC_MCAL_UART_PORT_3, IVEC_MCAL_UART_PORT_MAX }IVEC_McalUartPort_e; typedef struct { IVEC_McalUartBaudRate_e eUartBaudrate; IVEC_McalUartDataBit_e eUartDataBit; IVEC_McalUartStopBit_e eUartStopBit; IVEC_McalUartParityBit_e eUartParityBit; IVEC_McalUartFlowCtrl_e eUartFlowCtrl; }IVEC_McalUartConfig_s; typedef enum { IVEC_MCAL_UART_EVENT_RX_ARRIVED = 1, ///< Received new data IVEC_MCAL_UART_EVENT_RX_OVERFLOW = 2, ///< Rx FIFO overflowed IVEC_MCAL_UART_EVENT_TX_COMPLETE = 3 ///< All data had been sent } IVEC_McalUartEvents_e; typedef struct { IVEC_McalUartPort_e eUartPortNumber; IVEC_McalUartConfig_s xUartConfig; char* pcBuffer; uint16_t u16Length; void (*pvUartRecvCallback)(IVEC_McalUartPort_e, IVEC_McalUartEvents_e, char*, uint32_t); } IVEC_McalUartHandle_s; //#define IVEC_MCAL_UART_PORT_MAX 3 /* Function Prototypes */ IVEC_McalCommonErr_e xMCAL_UartInit(IVEC_McalUartHandle_s* pxUartHandle); IVEC_McalCommonErr_e xMCAL_UartDeInit(IVEC_McalUartHandle_s* pxUartHandle); IVEC_McalCommonErr_e xMCAL_UartRead(IVEC_McalUartHandle_s* pxUartHandle, uint8_t* pu8Data, uint32_t u32DataLength); IVEC_McalCommonErr_e xMCAL_UartWrite(IVEC_McalUartHandle_s* pxUartHandle, uint8_t* pu8Data, uint32_t u32DataLength); #endif /* CORE_INCLUDE_IVEC_MCAL_UART_H_ */