54 #ifdef HAL_SMARTCARD_MODULE_ENABLED 59 #define RX_FIFO_DEPTH 8U 62 #define TX_FIFO_DEPTH 8U 67 #if defined(USART_CR1_FIFOEN) 102 MODIFY_REG(hsmartcard->
Instance->RTOR, USART_RTOR_BLEN, ((uint32_t)BlockLength << USART_RTOR_BLEN_Pos));
125 if (hsmartcard->
gState == HAL_SMARTCARD_STATE_READY)
130 hsmartcard->
gState = HAL_SMARTCARD_STATE_BUSY;
133 SET_BIT(hsmartcard->
Instance->CR2, USART_CR2_RTOEN);
135 hsmartcard->
gState = HAL_SMARTCARD_STATE_READY;
155 if (hsmartcard->
gState == HAL_SMARTCARD_STATE_READY)
160 hsmartcard->
gState = HAL_SMARTCARD_STATE_BUSY;
165 hsmartcard->
gState = HAL_SMARTCARD_STATE_READY;
200 #if defined(USART_CR1_FIFOEN) 255 #if defined(USART_CR1_FIFOEN) 271 hsmartcard->
gState = HAL_SMARTCARD_STATE_BUSY;
274 tmpcr1 = READ_REG(hsmartcard->
Instance->CR1);
277 __HAL_SMARTCARD_DISABLE(hsmartcard);
280 SET_BIT(tmpcr1, USART_CR1_FIFOEN);
281 hsmartcard->
FifoMode = SMARTCARD_FIFOMODE_ENABLE;
284 WRITE_REG(hsmartcard->
Instance->CR1, tmpcr1);
289 hsmartcard->
gState = HAL_SMARTCARD_STATE_READY;
312 hsmartcard->
gState = HAL_SMARTCARD_STATE_BUSY;
315 tmpcr1 = READ_REG(hsmartcard->
Instance->CR1);
318 __HAL_SMARTCARD_DISABLE(hsmartcard);
322 hsmartcard->
FifoMode = SMARTCARD_FIFOMODE_DISABLE;
325 WRITE_REG(hsmartcard->
Instance->CR1, tmpcr1);
327 hsmartcard->
gState = HAL_SMARTCARD_STATE_READY;
359 hsmartcard->
gState = HAL_SMARTCARD_STATE_BUSY;
362 tmpcr1 = READ_REG(hsmartcard->
Instance->CR1);
365 __HAL_SMARTCARD_DISABLE(hsmartcard);
376 hsmartcard->
gState = HAL_SMARTCARD_STATE_READY;
408 hsmartcard->
gState = HAL_SMARTCARD_STATE_BUSY;
411 tmpcr1 = READ_REG(hsmartcard->
Instance->CR1);
414 __HAL_SMARTCARD_DISABLE(hsmartcard);
425 hsmartcard->
gState = HAL_SMARTCARD_STATE_READY;
446 #if defined(USART_CR1_FIFOEN) 456 uint8_t rx_fifo_depth;
457 uint8_t tx_fifo_depth;
458 uint8_t rx_fifo_threshold;
459 uint8_t tx_fifo_threshold;
461 uint8_t numerator[] = {1U, 1U, 1U, 3U, 7U, 1U, 0U, 0U};
462 uint8_t denominator[] = {8U, 4U, 2U, 4U, 8U, 1U, 1U, 1U};
464 if (hsmartcard->
FifoMode == SMARTCARD_FIFOMODE_DISABLE)
471 rx_fifo_depth = RX_FIFO_DEPTH;
472 tx_fifo_depth = TX_FIFO_DEPTH;
473 rx_fifo_threshold = (uint8_t)(READ_BIT(hsmartcard->
Instance->CR3, USART_CR3_RXFTCFG) >> USART_CR3_RXFTCFG_Pos);
474 tx_fifo_threshold = (uint8_t)(READ_BIT(hsmartcard->
Instance->CR3, USART_CR3_TXFTCFG) >> USART_CR3_TXFTCFG_Pos);
475 hsmartcard->
NbTxDataToProcess = ((uint16_t)tx_fifo_depth * numerator[tx_fifo_threshold]) / (uint16_t)denominator[tx_fifo_threshold];
476 hsmartcard->
NbRxDataToProcess = ((uint16_t)rx_fifo_depth * numerator[rx_fifo_threshold]) / (uint16_t)denominator[rx_fifo_threshold];
__IO HAL_SMARTCARD_StateTypeDef gState
void HAL_SMARTCARDEx_TxFifoEmptyCallback(SMARTCARD_HandleTypeDef *hsmartcard)
SMARTCARD TX Fifo empty callback.
void HAL_SMARTCARDEx_BlockLength_Config(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t BlockLength)
Update on the fly the SMARTCARD block length in RTOR register.
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef HAL_SMARTCARDEx_EnableFifoMode(SMARTCARD_HandleTypeDef *hsmartcard)
Enable the FIFO mode.
HAL_StatusTypeDef HAL_SMARTCARDEx_SetRxFifoThreshold(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t Threshold)
Set the RXFIFO threshold.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
uint16_t NbTxDataToProcess
HAL_StatusTypeDef HAL_SMARTCARDEx_DisableFifoMode(SMARTCARD_HandleTypeDef *hsmartcard)
Disable the FIFO mode.
HAL_StatusTypeDef HAL_SMARTCARDEx_SetTxFifoThreshold(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t Threshold)
Set the TXFIFO threshold.
SMARTCARD_InitTypeDef Init
void HAL_SMARTCARDEx_RxFifoFullCallback(SMARTCARD_HandleTypeDef *hsmartcard)
SMARTCARD RX Fifo full callback.
uint16_t NbRxDataToProcess
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
static void SMARTCARDEx_SetNbDataToProcess(SMARTCARD_HandleTypeDef *hsmartcard)
Calculate the number of data to process in RX/TX ISR.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
SMARTCARD handle Structure definition.
HAL_StatusTypeDef HAL_SMARTCARDEx_DisableReceiverTimeOut(SMARTCARD_HandleTypeDef *hsmartcard)
Disable the SMARTCARD receiver timeout feature.
HAL_StatusTypeDef HAL_SMARTCARDEx_EnableReceiverTimeOut(SMARTCARD_HandleTypeDef *hsmartcard)
Enable the SMARTCARD receiver timeout feature.
void HAL_SMARTCARDEx_TimeOut_Config(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t TimeOutValue)
Update on the fly the receiver timeout value in RTOR register.