/*******************************************************************************
|
* 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_ */
|