¶Ô±ÈÐÂÎļþ |
| | |
| | | /******************************************************************************* |
| | | * 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 = 0, |
| | | UART_ID_LORA, |
| | | UART_ID_GPS, |
| | | 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_INT32 Uart_Send(E_UartID _eUartID, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len); |
| | | |
| | | #endif /* HAL_UART_H_ */ |