M471M/R1/S BSP V3.01.000
The Board Support Package for M4521
scuart.h
Go to the documentation of this file.
1/**************************************************************************/
8#ifndef __SCUART_H__
9#define __SCUART_H__
10
11#ifdef __cplusplus
12extern "C"
13{
14#endif
15
16
28#define SCUART_CHAR_LEN_5 (0x3ul << SC_UARTCTL_WLS_Pos)
29#define SCUART_CHAR_LEN_6 (0x2ul << SC_UARTCTL_WLS_Pos)
30#define SCUART_CHAR_LEN_7 (0x1ul << SC_UARTCTL_WLS_Pos)
31#define SCUART_CHAR_LEN_8 (0)
33#define SCUART_PARITY_NONE (SC_UARTCTL_PBOFF_Msk)
34#define SCUART_PARITY_ODD (SC_UARTCTL_OPE_Msk)
35#define SCUART_PARITY_EVEN (0)
37#define SCUART_STOP_BIT_1 (SC_CTL_NSB_Msk)
38#define SCUART_STOP_BIT_2 (0) /* end of group SCUART_EXPORTED_CONSTANTS */
42
43
48/* TX Macros */
57#define SCUART_WRITE(sc, u8Data) ((sc)-> DAT = (u8Data))
58
69#define SCUART_GET_TX_EMPTY(sc) ((sc)->STATUS & SC_STATUS_TXEMPTY_Msk)
70
79#define SCUART_GET_TX_FULL(sc) ((sc)->STATUS & SC_STATUS_TXFULL_Msk)
80
89#define SCUART_WAIT_TX_EMPTY(sc) while((sc)->STATUS & SC_STATUS_TXACT_Msk)
90
100#define SCUART_IS_TX_FULL(sc) ((sc)->STATUS & SC_STATUS_TXFULL_Msk ? 1 : 0)
101
110#define SCUART_IS_TX_EMPTY(sc) ((sc)->STATUS & SC_STATUS_TXACT_Msk ? 0 : 1)
111
112
113/* RX Macros */
114
122#define SCUART_READ(sc) ((sc)->DAT)
123
133#define SCUART_GET_RX_EMPTY(sc) ((sc)->STATUS & SC_STATUS_RXEMPTY_Msk)
134
135
144#define SCUART_GET_RX_FULL(sc) ((sc)->STATUS & SC_STATUS_RXFULL_Msk)
145
155#define SCUART_IS_RX_READY(sc) ((sc)->INTSTS & SC_INTSTS_RDAIF_Msk ? 1 : 0)
156
165#define SCUART_IS_RX_FULL(sc) ((sc)->STATUS & SC_STATUS_RXFULL_Msk ? 1 : 0)
166
167/* Interrupt Macros */
168
182#define SCUART_ENABLE_INT(sc, u32Mask) ((sc)->INTEN |= (u32Mask))
183
197#define SCUART_DISABLE_INT(sc, u32Mask) ((sc)->INTEN &= ~(u32Mask))
198
214#define SCUART_GET_INT_FLAG(sc, u32Type) ((sc)->INTSTS & (u32Type) ? 1 : 0)
215
228#define SCUART_CLR_INT_FLAG(sc, u32Type) ((sc)->INTSTS = (u32Type))
229
241#define SCUART_GET_ERR_FLAG(sc) ((sc)->STATUS & (SC_STATUS_PEF_Msk | SC_STATUS_FEF_Msk | SC_STATUS_BEF_Msk))
242
255#define SCUART_CLR_ERR_FLAG(sc, u32Mask) ((sc)->STATUS = (u32Mask))
256
257void SCUART_Close(SC_T* sc);
258uint32_t SCUART_Open(SC_T* sc, uint32_t u32baudrate);
259uint32_t SCUART_Read(SC_T* sc, uint8_t *pu8RxBuf, uint32_t u32ReadBytes);
260uint32_t SCUART_SetLineConfig(SC_T* sc, uint32_t u32Baudrate, uint32_t u32DataWidth, uint32_t u32Parity, uint32_t u32StopBits);
261void SCUART_SetTimeoutCnt(SC_T* sc, uint32_t u32TOC);
262void SCUART_Write(SC_T* sc, uint8_t *pu8TxBuf, uint32_t u32WriteBytes);
263 /* end of group SCUART_EXPORTED_FUNCTIONS */
265 /* end of group SCUART_Driver */
267 /* end of group Standard_Driver */
269
270#ifdef __cplusplus
271}
272#endif
273
274#endif //__SCUART_H__
275
void SCUART_SetTimeoutCnt(SC_T *sc, uint32_t u32TOC)
This function use to set receive timeout count.
Definition: scuart.c:176
uint32_t SCUART_Read(SC_T *sc, uint8_t *pu8RxBuf, uint32_t u32ReadBytes)
Read data from smartcard UART interface.
Definition: scuart.c:109
void SCUART_Write(SC_T *sc, uint8_t *pu8TxBuf, uint32_t u32WriteBytes)
Write data to smartcard UART interface.
Definition: scuart.c:191
uint32_t SCUART_SetLineConfig(SC_T *sc, uint32_t u32Baudrate, uint32_t u32DataWidth, uint32_t u32Parity, uint32_t u32StopBits)
This function use to config smartcard UART mode line setting.
Definition: scuart.c:144
uint32_t SCUART_Open(SC_T *sc, uint32_t u32baudrate)
Enable smartcard uart interface.
Definition: scuart.c:86
void SCUART_Close(SC_T *sc)
Disable smartcard uart interface.
Definition: scuart.c:29