M480 BSP  V3.05.001
The Board Support Package for M480 Series
scuart.h
Go to the documentation of this file.
1 /**************************************************************************/
9 #ifndef __SCUART_H__
10 #define __SCUART_H__
11 
12 #ifdef __cplusplus
13 extern "C"
14 {
15 #endif
16 
17 
29 #define SCUART_CHAR_LEN_5 (0x3ul << SC_UARTCTL_WLS_Pos)
30 #define SCUART_CHAR_LEN_6 (0x2ul << SC_UARTCTL_WLS_Pos)
31 #define SCUART_CHAR_LEN_7 (0x1ul << SC_UARTCTL_WLS_Pos)
32 #define SCUART_CHAR_LEN_8 (0UL)
34 #define SCUART_PARITY_NONE (SC_UARTCTL_PBOFF_Msk)
35 #define SCUART_PARITY_ODD (SC_UARTCTL_OPE_Msk)
36 #define SCUART_PARITY_EVEN (0UL)
38 #define SCUART_STOP_BIT_1 (SC_CTL_NSB_Msk)
39 #define SCUART_STOP_BIT_2 (0UL)
42  /* end of group SCUART_EXPORTED_CONSTANTS */
43 
44 
49 /* TX Macros */
57 #define SCUART_WRITE(sc, u8Data) ((sc)->DAT = (u8Data))
58 
67 #define SCUART_GET_TX_EMPTY(sc) ((sc)->STATUS & SC_STATUS_TXEMPTY_Msk)
68 
77 #define SCUART_GET_TX_FULL(sc) ((sc)->STATUS & SC_STATUS_TXFULL_Msk)
78 
86 #define SCUART_WAIT_TX_EMPTY(sc) while((sc)->STATUS & SC_STATUS_TXACT_Msk)
87 
96 #define SCUART_IS_TX_FULL(sc) ((sc)->STATUS & SC_STATUS_TXFULL_Msk ? 1 : 0)
97 
106 #define SCUART_IS_TX_EMPTY(sc) ((sc)->STATUS & SC_STATUS_TXACT_Msk ? 0 : 1)
107 
116 #define SCUART_IS_TX_ACTIVE(sc) (((sc)->STATUS & SC_STATUS_TXACT_Msk)? 1 : 0)
117 
118 /* RX Macros */
119 
126 #define SCUART_READ(sc) ((sc)->DAT)
127 
136 #define SCUART_GET_RX_EMPTY(sc) ((sc)->STATUS & SC_STATUS_RXEMPTY_Msk)
137 
138 
147 #define SCUART_GET_RX_FULL(sc) ((sc)->STATUS & SC_STATUS_RXFULL_Msk)
148 
158 #define SCUART_IS_RX_READY(sc) ((sc)->INTSTS & SC_INTSTS_RDAIF_Msk ? 1 : 0)
159 
168 #define SCUART_IS_RX_FULL(sc) ((sc)->STATUS & SC_STATUS_RXFULL_Msk ? 1 : 0)
169 
170 /* Interrupt Macros */
171 
183 #define SCUART_ENABLE_INT(sc, u32Mask) ((sc)->INTEN |= (u32Mask))
184 
196 #define SCUART_DISABLE_INT(sc, u32Mask) ((sc)->INTEN &= ~(u32Mask))
197 
211 #define SCUART_GET_INT_FLAG(sc, u32Type) ((sc)->INTSTS & (u32Type) ? 1 : 0)
212 
223 #define SCUART_CLR_INT_FLAG(sc, u32Type) ((sc)->INTSTS = (u32Type))
224 
234 #define SCUART_GET_ERR_FLAG(sc) ((sc)->STATUS & (SC_STATUS_PEF_Msk | SC_STATUS_FEF_Msk | SC_STATUS_BEF_Msk))
235 
246 #define SCUART_CLR_ERR_FLAG(sc, u32Mask) ((sc)->STATUS = (u32Mask))
247 
248 void SCUART_Close(SC_T* sc);
249 uint32_t SCUART_Open(SC_T* sc, uint32_t u32baudrate);
250 uint32_t SCUART_Read(SC_T* sc, uint8_t pu8RxBuf[], uint32_t u32ReadBytes);
251 uint32_t SCUART_SetLineConfig(SC_T* sc, uint32_t u32Baudrate, uint32_t u32DataWidth, uint32_t u32Parity, uint32_t u32StopBits);
252 void SCUART_SetTimeoutCnt(SC_T* sc, uint32_t u32TOC);
253 void SCUART_Write(SC_T* sc,uint8_t pu8TxBuf[], uint32_t u32WriteBytes);
254  /* end of group SCUART_EXPORTED_FUNCTIONS */
256  /* end of group SCUART_Driver */
258  /* end of group Standard_Driver */
260 
261 #ifdef __cplusplus
262 }
263 #endif
264 
265 #endif /* __SCUART_H__ */
266 
267 /*** (C) COPYRIGHT 2016 Nuvoton Technology Corp. ***/
Definition: sc_reg.h:26
void SCUART_Close(SC_T *sc)
The function is used to disable smartcard interface UART mode.
Definition: scuart.c:31
void SCUART_SetTimeoutCnt(SC_T *sc, uint32_t u32TOC)
This function use to set receive timeout count.
Definition: scuart.c:205
uint32_t SCUART_Read(SC_T *sc, uint8_t pu8RxBuf[], uint32_t u32ReadBytes)
The function is used to read Rx data from RX FIFO.
Definition: scuart.c:133
void SCUART_Write(SC_T *sc, uint8_t pu8TxBuf[], uint32_t u32WriteBytes)
This function is to write data into transmit FIFO to send data out.
Definition: scuart.c:219
uint32_t SCUART_SetLineConfig(SC_T *sc, uint32_t u32Baudrate, uint32_t u32DataWidth, uint32_t u32Parity, uint32_t u32StopBits)
This function use to configure smartcard UART mode line setting.
Definition: scuart.c:172
uint32_t SCUART_Open(SC_T *sc, uint32_t u32baudrate)
This function use to enable smartcard module UART mode and set baudrate.
Definition: scuart.c:109