Nano103 BSP  V3.01.002
The Board Support Package for Nano103 Series
scuart.h
Go to the documentation of this file.
1 /**************************************************************************/
12 #ifndef __SCUART_H__
13 #define __SCUART_H__
14 
15 #ifdef __cplusplus
16 extern "C"
17 {
18 #endif
19 
20 
32 #define SCUART_CHAR_LEN_5 (0x3ul << SC_UARTCTL_WLS_Pos)
33 #define SCUART_CHAR_LEN_6 (0x2ul << SC_UARTCTL_WLS_Pos)
34 #define SCUART_CHAR_LEN_7 (0x1ul << SC_UARTCTL_WLS_Pos)
35 #define SCUART_CHAR_LEN_8 (0)
37 #define SCUART_PARITY_NONE (SC_UARTCTL_PBOFF_Msk)
38 #define SCUART_PARITY_ODD (SC_UARTCTL_OPE_Msk)
39 #define SCUART_PARITY_EVEN (0)
41 #define SCUART_STOP_BIT_1 (SC_CTL_NSB_Msk)
42 #define SCUART_STOP_BIT_2 (0)
45  /* end of group NANO103_SCUART_EXPORTED_CONSTANTS */
46 
47 
52 /* TX Macros */
60 #define SCUART_WRITE(sc, u8Data) ((sc)->DAT = (u8Data))
61 
70 #define SCUART_GET_TX_EMPTY(sc) ((sc)->STATUS & SC_STATUS_TXEMPTY_Msk)
71 
80 #define SCUART_GET_TX_FULL(sc) ((sc)->STATUS & SC_STATUS_TXFULL_Msk)
81 
89 #define SCUART_WAIT_TX_EMPTY(sc) while((sc)->STATUS & SC_STATUS_TXACT_Msk)
90 
99 #define SCUART_IS_TX_FULL(sc) ((sc)->STATUS & SC_STATUS_TXFULL_Msk ? 1 : 0)
100 
109 #define SCUART_IS_TX_EMPTY(sc) ((sc)->STATUS & SC_STATUS_TXACT_Msk ? 0 : 1)
110 
111 
112 /* RX Macros */
113 
120 #define SCUART_READ(sc) ((sc)->DAT)
121 
130 #define SCUART_GET_RX_EMPTY(sc) ((sc)->STATUS & SC_STATUS_RXEMPTY_Msk)
131 
132 
141 #define SCUART_GET_RX_FULL(sc) ((sc)->STATUS & SC_STATUS_RXFULL_Msk)
142 
152 #define SCUART_IS_RX_READY(sc) ((sc)->INTSTS & SC_INTSTS_RDAIF_Msk ? 1 : 0)
153 
162 #define SCUART_IS_RX_FULL(sc) ((sc)->STATUS & SC_STATUS_RXFULL_Msk ? 1 : 0)
163 
164 /* Interrupt Macros */
165 
177 #define SCUART_ENABLE_INT(sc, u32Mask) ((sc)->INTEN |= (u32Mask))
178 
190 #define SCUART_DISABLE_INT(sc, u32Mask) ((sc)->INTEN &= ~(u32Mask))
191 
205 #define SCUART_GET_INT_FLAG(sc, u32Type) ((sc)->INTSTS & u32Type ? 1 : 0)
206 
217 #define SCUART_CLR_INT_FLAG(sc, u32Type) ((sc)->INTSTS = u32Type)
218 
228 #define SCUART_GET_ERR_FLAG(sc) ((sc)->STATUS & (SC_STATUS_PEF_Msk | SC_STATUS_FEF_Msk | SC_STATUS_BEF_Msk))
229 
240 #define SCUART_CLR_ERR_FLAG(sc, u32Mask) ((sc)->STATUS = u32Mask)
241 
242 void SCUART_Close(SC_T* sc);
243 uint32_t SCUART_Open(SC_T* sc, uint32_t u32baudrate);
244 uint32_t SCUART_Read(SC_T* sc, uint8_t *pu8RxBuf, uint32_t u32ReadBytes);
245 uint32_t SCUART_SetLineConfig(SC_T* sc, uint32_t u32Baudrate, uint32_t u32DataWidth, uint32_t u32Parity, uint32_t u32StopBits);
246 void SCUART_SetTimeoutCnt(SC_T* sc, uint32_t u32TOC);
247 void SCUART_Write(SC_T* sc,uint8_t *pu8TxBuf, uint32_t u32WriteBytes);
248  /* end of group NANO103_SCUART_EXPORTED_FUNCTIONS */
250  /* end of group NANO103_SCUART_Driver */
252  /* end of group NANO103_Device_Driver */
254 
255 #ifdef __cplusplus
256 }
257 #endif
258 
259 #endif //__SCUART_H__
260 
261 /*** (C) COPYRIGHT 2015 Nuvoton Technology Corp. ***/
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:137
void SCUART_SetTimeoutCnt(SC_T *sc, uint32_t u32TOC)
This function use to set receive timeout count.
Definition: scuart.c:208
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:222
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:115
void SCUART_Close(SC_T *sc)
The function is used to disable smartcard interface UART mode.
Definition: scuart.c:32
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:177