94 lines
2.9 KiB
C
94 lines
2.9 KiB
C
#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 <stdint.h>
|
|
#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_ */
|