/******************************************************************************* * File Name : Uart.h * Description : * Created on : 2018Äê4ÔÂ24ÈÕ * Author : ¶Å¼ü *******************************************************************************/ #ifndef HAL_UART_H_ #define HAL_UART_H_ /******************************************************************************* * Include Files * *******************************************************************************/ #include "HIDO_TypeDef.h" #include "mk_uart.h" /******************************************************************************* * Macro * *******************************************************************************/ /******************************************************************************* * Type Definition * *******************************************************************************/ typedef HIDO_VOID (*FN_RxISR)(HIDO_UINT8 _u8Byte); typedef enum { UART_TX_MODE_DMA = 0, UART_TX_MODE_INT, UART_TX_MODE_POLL, }E_UartTxMode; typedef enum { UART_RX_MODE_DMA = 0, UART_RX_MODE_INT, UART_RX_MODE_INT_ISR, }E_UartRxMode; typedef enum { UART_ID_DBG_GPS = 0, UART_ID_4G, UART_ID_LAST, }E_UartID; typedef struct { E_UartTxMode m_eTxMode; E_UartRxMode m_eRxMode; HIDO_UINT8 *m_pu8RxBuf; HIDO_UINT32 m_u32RxBufSize; HIDO_UINT8 *m_pu8TxBuf; HIDO_UINT32 m_u32TxBufSize; HIDO_UINT32 m_u32TxQueueMemberCnt; FN_RxISR m_fnRxISR; HIDO_UINT32 m_u32BaudRate; } ST_UartInit; /******************************************************************************* * Global Function * *******************************************************************************/ HIDO_INT32 Uart_GetHandle(E_UartID _eUartID, HIDO_VOID **_ppUart); HIDO_INT32 Uart_Register(E_UartID _eUartID, enum UART_DEV_T _ePort); HIDO_INT32 Uart_Init(E_UartID _eUartID, ST_UartInit *_pstInit); HIDO_INT32 Uart_ReInit(E_UartID _eUartID); HIDO_INT32 Uart_ReConfigBaudRate(E_UartID _eUartID, HIDO_UINT32 _u32BaudRate); HIDO_VOID Uart_RxErrorFromISR(HIDO_VOID *_pUart); HIDO_VOID Uart_TxOverFromISR(HIDO_VOID *_pUart); HIDO_VOID Uart_RxOverFromISR(HIDO_VOID *_pUart); HIDO_INT32 Uart_PutChar(E_UartID _eUartID, HIDO_UINT8 _u8Char); HIDO_INT32 Uart_GetChar(E_UartID _eUartID, HIDO_UINT8 *_pu8Char); HIDO_VOID Uart_SetChar(E_UartID _eUartID, HIDO_UINT8 _u8Data); HIDO_INT32 Uart_Send(E_UartID _eUartID, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len); #endif /* HAL_UART_H_ */