48static uint32_t SCUART_GetClock(
SC_T *sc)
50 uint32_t u32ClkSrc, u32Num, u32Clk;
74 else if(u32ClkSrc == 1)
76 else if(u32ClkSrc == 2)
94 u32Clk /= (((
CLK->CLKDIV2 >> (8 * (u32Num - 4))) & CLK_CLKDIV2_SC4DIV_Msk) + 1);
115 uint32_t u32Clk = SCUART_GetClock(sc), u32Div;
118 u32Div = (u32Clk + (u32baudrate >> 1) - 1) / u32baudrate - 1;
124 return(u32Clk / (u32Div+1));
140 for(u32Count = 0; u32Count < u32ReadBytes; u32Count++)
174 uint32_t u32Clk = SCUART_GetClock(sc), u32Div;
183 u32Div = (u32Clk + (u32Baudrate >> 1) - 1) / u32Baudrate - 1;
190 return(u32Clk / (u32Div+1));
224 for(u32Count = 0; u32Count != u32WriteBytes; u32Count++)
235 sc->
DAT = pu8TxBuf[u32Count];
#define SC_ETUCTL_ETURDIV_Msk
#define SC_UARTCTL_UARTEN_Msk
__STATIC_INLINE uint32_t CLK_GetPLLClockFreq(void)
Get PLL clock frequency.
#define CLK_CLKSEL3_SC0SEL_Msk
#define CLK_CLKDIV1_SC0DIV_Msk
#define CLK_CLKSEL0_PCLK0SEL_Msk
int32_t g_SCUART_i32ErrCode
#define SCUART_CHAR_LEN_8
#define SCUART_PARITY_NONE
#define SCUART_TIMEOUT_ERR
void SCUART_SetTimeoutCnt(SC_T *sc, uint32_t u32TOC)
This function use to set receive timeout count.
#define SCUART_GET_TX_FULL(sc)
Get TX FIFO full flag status from register.
uint32_t SCUART_Read(SC_T *sc, uint8_t *pu8RxBuf, uint32_t u32ReadBytes)
Read data from smartcard UART interface.
#define SCUART_GET_RX_EMPTY(sc)
Get RX FIFO empty flag status from register.
#define SCUART_READ(sc)
Read Rx data register.
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.
uint32_t SCUART_Open(SC_T *sc, uint32_t u32baudrate)
Enable smartcard uart interface.
uint32_t SCUART_Write(SC_T *sc, uint8_t *pu8TxBuf, uint32_t u32WriteBytes)
Write data to smartcard UART interface.
void SCUART_Close(SC_T *sc)
Disable smartcard uart interface.
void SystemCoreClockUpdate(void)
Updates the SystemCoreClock with current core Clock retrieved from cpu registers.