#ifndef CORE_INCLUDE_IVEC_MCAL_UART_H_ #define CORE_INCLUDE_IVEC_MCAL_UART_H_ //#include "ivec_mcal_uart.h" #include "ti_msp_dl_config.h" #include "../utils/utils.h" #include //#ifndef IVEC_MCAL_UART_H //#define IVEC_MCAL_UART_H #include "ivec_mcal_common.h" //#include "ql_uart.h" typedef enum { mcalUART_BAUD_AUTO = 0, mcalUART_BAUD_2400 = 2400, mcalUART_BAUD_4800 = 4800, mcalUART_BAUD_9600 = 9600, mcalUART_BAUD_14400 = 14400, mcalUART_BAUD_19200 = 19200, mcalUART_BAUD_28800 = 28800, mcalUART_BAUD_33600 = 33600, mcalUART_BAUD_38400 = 38400, mcalUART_BAUD_57600 = 57600, mcalUART_BAUD_115200 = 115200, mcalUART_BAUD_230400 = 230400, mcalUART_BAUD_460800 = 460800, mcalUART_BAUD_921600 = 921600, mcalUART_BAUD_1000000 = 1000000, mcalUART_BAUD_1843200 = 1843200, mcalUART_BAUD_2000000 = 2000000, //only support uart2/3 mcalUART_BAUD_2100000 = 2100000, mcalUART_BAUD_3686400 = 3686400, //only support uart2/3 mcalUART_BAUD_4000000 = 4000000, //only support uart2/3 mcalUART_BAUD_4468750 = 4468750 //only support uart2/3 }McalUartBaudRate_e; typedef enum { mcalUART_DATABIT_7 = 7, mcalUART_DATABIT_8 = 8, //8910 ARM UART hardware only support 8bit Data }McalUartDataBit_e; typedef enum { mcalUART_STOP_1 = 1, mcalUART_STOP_2 = 2, }McalUartStopBit_e; typedef enum { mcalUART_PARITY_NONE, mcalUART_PARITY_ODD, mcalUART_PARITY_EVEN, }McalUartParityBit_e; typedef enum { mcalUART_FC_NONE = 0, mcalUARTFC_HW, }McalUartFlowCtrl_e; typedef struct { McalUartBaudRate_e eUartBaudrate; McalUartDataBit_e eUartDataBit; McalUartStopBit_e eUartStopBit; McalUartParityBit_e eUartParityBit; McalUartFlowCtrl_e eUartFlowCtrl; }McalUartConfig_s; typedef enum { mcalUART_PORT1 = 0, mcalUART_PORT2, mcalUART_PORT3 }McalUartPortNumber_e; #define IVEC_MCAL_GNSS_UART mcalUART_PORT3 typedef enum { IVEC_MCAL_UART_EVENT_RX_ARRIVED = 1,//(1 << 0), ///< Received new data IVEC_MCAL_UART_EVENT_RX_OVERFLOW =2 ,//(1 << 1), ///< Rx fifo overflowed IVEC_MCAL_UART_EVENT_TX_COMPLETE = 3//(1 << 2) ///< All data had been sent }IVEC_McalUartEvents_e; typedef struct { McalUartPortNumber_e eUartPortNumber; McalUartConfig_s xUartConfig; char* buffer; uint16_t u16len; void (*pvUartRecvCallback)(IVEC_McalUartEvents_e , char *,uint32_t); }McalUartHandle_s; #define IVEC_MCAL_UART_MAX_PORT 3 IVEC_McalCommonErr_e xMCAL_UartDeInit(McalUartHandle_s* pxHandleUart); IVEC_McalCommonErr_e xMCAL_UartRead(McalUartHandle_s* pxHandleUart, unsigned char* pucData, unsigned int u32DataLength); IVEC_McalCommonErr_e xMCAL_UartWrite(McalUartHandle_s* pxHandleUart, unsigned char* pucData, unsigned int u32DataLength); IVEC_McalCommonErr_e __prvMCAL_UartPinInit(McalUartHandle_s* pxHandleUart); IVEC_McalCommonErr_e xMCAL_UartInit(McalUartHandle_s* pxHandleUart); #endif /* IVEC_MCAL_UART_H */ // ///** // * @file ivec_mcal_uart.h // * @author Akshat Dabas (akshat@vecmocon.com) // * @brief This header file contains API for UART Functionality // * @version 0.1.0 // * @date 2024-Feb-17 // * // * @copyright Copyright (c) 2024 // * // */ // //#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 // //#define BUFFER_SIZE 100U //#define SIZE 100U // //xCoreStatus_t xMCAL_uart_init(UART_Regs *uart_inst,xUart_baud_t xBaud); //xCoreStatus_t xMCAL_uart_deinit(UART_Regs* uart_inst); //xCoreStatus_t xMCAL_uart_getdata(UART_Regs *uart_inst, uint8_t *u8rxdata, uint32_t u32rxbuffer_size); //xCoreStatus_t xMCAL_uart_transmit(UART_Regs *uart_inst, uint8_t *u8txdata,uint32_t u32size); //xCoreStatus_t xMCAL_uart_bufferReset(UART_Regs * uart_inst); // //#endif /* CORE_INCLUDE_IVEC_MCAL_UART_H_ */