Lines Matching refs:hsmartcard
231 void SMARTCARD_InitCallbacksToDefault(SMARTCARD_HandleTypeDef *hsmartcard);
233 static HAL_StatusTypeDef SMARTCARD_SetConfig(SMARTCARD_HandleTypeDef *hsmartcard);
234 static void SMARTCARD_AdvFeatureConfig(SMARTCARD_HandleTypeDef *hsmartcard);
235 static HAL_StatusTypeDef SMARTCARD_CheckIdleState(SMARTCARD_HandleTypeDef *hsmartcard);
236 static HAL_StatusTypeDef SMARTCARD_WaitOnFlagUntilTimeout(SMARTCARD_HandleTypeDef *hsmartcard, uint…
238 static void SMARTCARD_EndTxTransfer(SMARTCARD_HandleTypeDef *hsmartcard);
239 static void SMARTCARD_EndRxTransfer(SMARTCARD_HandleTypeDef *hsmartcard);
250 static void SMARTCARD_TxISR(SMARTCARD_HandleTypeDef *hsmartcard);
251 static void SMARTCARD_TxISR_FIFOEN(SMARTCARD_HandleTypeDef *hsmartcard);
252 static void SMARTCARD_EndTransmit_IT(SMARTCARD_HandleTypeDef *hsmartcard);
253 static void SMARTCARD_RxISR(SMARTCARD_HandleTypeDef *hsmartcard);
254 static void SMARTCARD_RxISR_FIFOEN(SMARTCARD_HandleTypeDef *hsmartcard);
320 HAL_StatusTypeDef HAL_SMARTCARD_Init(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_Init() argument
323 if (hsmartcard == NULL) in HAL_SMARTCARD_Init()
329 assert_param(IS_SMARTCARD_INSTANCE(hsmartcard->Instance)); in HAL_SMARTCARD_Init()
331 if (hsmartcard->gState == HAL_SMARTCARD_STATE_RESET) in HAL_SMARTCARD_Init()
334 hsmartcard->Lock = HAL_UNLOCKED; in HAL_SMARTCARD_Init()
337 SMARTCARD_InitCallbacksToDefault(hsmartcard); in HAL_SMARTCARD_Init()
339 if (hsmartcard->MspInitCallback == NULL) in HAL_SMARTCARD_Init()
341 hsmartcard->MspInitCallback = HAL_SMARTCARD_MspInit; in HAL_SMARTCARD_Init()
345 hsmartcard->MspInitCallback(hsmartcard); in HAL_SMARTCARD_Init()
348 HAL_SMARTCARD_MspInit(hsmartcard); in HAL_SMARTCARD_Init()
352 hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY; in HAL_SMARTCARD_Init()
355 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Init()
360 CLEAR_BIT(hsmartcard->Instance->CR2, USART_CR2_LINEN); in HAL_SMARTCARD_Init()
361 CLEAR_BIT(hsmartcard->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_SMARTCARD_Init()
364 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_SCEN); in HAL_SMARTCARD_Init()
367 if (SMARTCARD_SetConfig(hsmartcard) == HAL_ERROR) in HAL_SMARTCARD_Init()
373 SMARTCARD_TRANSMISSION_COMPLETION_SETTING(hsmartcard); in HAL_SMARTCARD_Init()
375 if (hsmartcard->AdvancedInit.AdvFeatureInit != SMARTCARD_ADVFEATURE_NO_INIT) in HAL_SMARTCARD_Init()
377 SMARTCARD_AdvFeatureConfig(hsmartcard); in HAL_SMARTCARD_Init()
381 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Init()
384 return (SMARTCARD_CheckIdleState(hsmartcard)); in HAL_SMARTCARD_Init()
393 HAL_StatusTypeDef HAL_SMARTCARD_DeInit(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_DeInit() argument
396 if (hsmartcard == NULL) in HAL_SMARTCARD_DeInit()
402 assert_param(IS_SMARTCARD_INSTANCE(hsmartcard->Instance)); in HAL_SMARTCARD_DeInit()
404 hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY; in HAL_SMARTCARD_DeInit()
407 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_DeInit()
409 WRITE_REG(hsmartcard->Instance->CR1, 0x0U); in HAL_SMARTCARD_DeInit()
410 WRITE_REG(hsmartcard->Instance->CR2, 0x0U); in HAL_SMARTCARD_DeInit()
411 WRITE_REG(hsmartcard->Instance->CR3, 0x0U); in HAL_SMARTCARD_DeInit()
412 WRITE_REG(hsmartcard->Instance->RTOR, 0x0U); in HAL_SMARTCARD_DeInit()
413 WRITE_REG(hsmartcard->Instance->GTPR, 0x0U); in HAL_SMARTCARD_DeInit()
417 if (hsmartcard->MspDeInitCallback == NULL) in HAL_SMARTCARD_DeInit()
419 hsmartcard->MspDeInitCallback = HAL_SMARTCARD_MspDeInit; in HAL_SMARTCARD_DeInit()
422 hsmartcard->MspDeInitCallback(hsmartcard); in HAL_SMARTCARD_DeInit()
424 HAL_SMARTCARD_MspDeInit(hsmartcard); in HAL_SMARTCARD_DeInit()
427 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_DeInit()
428 hsmartcard->gState = HAL_SMARTCARD_STATE_RESET; in HAL_SMARTCARD_DeInit()
429 hsmartcard->RxState = HAL_SMARTCARD_STATE_RESET; in HAL_SMARTCARD_DeInit()
432 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_DeInit()
443 __weak void HAL_SMARTCARD_MspInit(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_MspInit() argument
446 UNUSED(hsmartcard); in HAL_SMARTCARD_MspInit()
459 __weak void HAL_SMARTCARD_MspDeInit(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_MspDeInit() argument
462 UNUSED(hsmartcard); in HAL_SMARTCARD_MspDeInit()
492 HAL_StatusTypeDef HAL_SMARTCARD_RegisterCallback(SMARTCARD_HandleTypeDef *hsmartcard, in HAL_SMARTCARD_RegisterCallback() argument
501 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_RegisterCallback()
506 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_RegisterCallback()
512 hsmartcard->TxCpltCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
516 hsmartcard->RxCpltCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
520 hsmartcard->ErrorCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
524 hsmartcard->AbortCpltCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
528 hsmartcard->AbortTransmitCpltCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
532 hsmartcard->AbortReceiveCpltCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
536 hsmartcard->RxFifoFullCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
540 hsmartcard->TxFifoEmptyCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
544 hsmartcard->MspInitCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
548 hsmartcard->MspDeInitCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
553 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_RegisterCallback()
560 else if (hsmartcard->gState == HAL_SMARTCARD_STATE_RESET) in HAL_SMARTCARD_RegisterCallback()
565 hsmartcard->MspInitCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
569 hsmartcard->MspDeInitCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
574 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_RegisterCallback()
584 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_RegisterCallback()
614 HAL_StatusTypeDef HAL_SMARTCARD_UnRegisterCallback(SMARTCARD_HandleTypeDef *hsmartcard, in HAL_SMARTCARD_UnRegisterCallback() argument
619 if (HAL_SMARTCARD_STATE_READY == hsmartcard->gState) in HAL_SMARTCARD_UnRegisterCallback()
624 …hsmartcard->TxCpltCallback = HAL_SMARTCARD_TxCpltCallback; /* Legacy weak TxCpltCa… in HAL_SMARTCARD_UnRegisterCallback()
628 …hsmartcard->RxCpltCallback = HAL_SMARTCARD_RxCpltCallback; /* Legacy weak RxCpltCa… in HAL_SMARTCARD_UnRegisterCallback()
632 …hsmartcard->ErrorCallback = HAL_SMARTCARD_ErrorCallback; /* Legacy weak ErrorCal… in HAL_SMARTCARD_UnRegisterCallback()
636 …hsmartcard->AbortCpltCallback = HAL_SMARTCARD_AbortCpltCallback; /* Legacy weak AbortCpl… in HAL_SMARTCARD_UnRegisterCallback()
640 … hsmartcard->AbortTransmitCpltCallback = HAL_SMARTCARD_AbortTransmitCpltCallback; /* Legacy weak in HAL_SMARTCARD_UnRegisterCallback()
645 … hsmartcard->AbortReceiveCpltCallback = HAL_SMARTCARD_AbortReceiveCpltCallback; /* Legacy weak in HAL_SMARTCARD_UnRegisterCallback()
650 …hsmartcard->RxFifoFullCallback = HAL_SMARTCARDEx_RxFifoFullCallback; /* Legacy weak RxFifoFul… in HAL_SMARTCARD_UnRegisterCallback()
654 …hsmartcard->TxFifoEmptyCallback = HAL_SMARTCARDEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmp… in HAL_SMARTCARD_UnRegisterCallback()
658 …hsmartcard->MspInitCallback = HAL_SMARTCARD_MspInit; /* Legacy weak MspInitC… in HAL_SMARTCARD_UnRegisterCallback()
662 …hsmartcard->MspDeInitCallback = HAL_SMARTCARD_MspDeInit; /* Legacy weak MspDeIni… in HAL_SMARTCARD_UnRegisterCallback()
667 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_UnRegisterCallback()
674 else if (HAL_SMARTCARD_STATE_RESET == hsmartcard->gState) in HAL_SMARTCARD_UnRegisterCallback()
679 hsmartcard->MspInitCallback = HAL_SMARTCARD_MspInit; in HAL_SMARTCARD_UnRegisterCallback()
683 hsmartcard->MspDeInitCallback = HAL_SMARTCARD_MspDeInit; in HAL_SMARTCARD_UnRegisterCallback()
688 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_UnRegisterCallback()
698 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_UnRegisterCallback()
809 HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsmartcard, const uint8_t *pData,… in HAL_SMARTCARD_Transmit() argument
816 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Transmit()
824 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Transmit()
826 hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY_TX; in HAL_SMARTCARD_Transmit()
832 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit()
837 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX) in HAL_SMARTCARD_Transmit()
838 && (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in HAL_SMARTCARD_Transmit()
840 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_RE); in HAL_SMARTCARD_Transmit()
843 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_TE); in HAL_SMARTCARD_Transmit()
846 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit()
849 __HAL_SMARTCARD_FLUSH_DRREGISTER(hsmartcard); in HAL_SMARTCARD_Transmit()
851 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Transmit()
852 hsmartcard->TxXferSize = Size; in HAL_SMARTCARD_Transmit()
853 hsmartcard->TxXferCount = Size; in HAL_SMARTCARD_Transmit()
855 while (hsmartcard->TxXferCount > 0U) in HAL_SMARTCARD_Transmit()
857 hsmartcard->TxXferCount--; in HAL_SMARTCARD_Transmit()
858 …if (SMARTCARD_WaitOnFlagUntilTimeout(hsmartcard, SMARTCARD_FLAG_TXE, RESET, tickstart, Timeout) !=… in HAL_SMARTCARD_Transmit()
862 hsmartcard->Instance->TDR = (uint8_t)(*ptmpdata & 0xFFU); in HAL_SMARTCARD_Transmit()
865 …if (SMARTCARD_WaitOnFlagUntilTimeout(hsmartcard, SMARTCARD_TRANSMISSION_COMPLETION_FLAG(hsmartcard… in HAL_SMARTCARD_Transmit()
872 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit()
873 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX) in HAL_SMARTCARD_Transmit()
874 && (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in HAL_SMARTCARD_Transmit()
878 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_RE); in HAL_SMARTCARD_Transmit()
880 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX_RX) in HAL_SMARTCARD_Transmit()
881 || (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in HAL_SMARTCARD_Transmit()
884 __HAL_SMARTCARD_FLUSH_DRREGISTER(hsmartcard); in HAL_SMARTCARD_Transmit()
886 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit()
889 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Transmit()
892 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Transmit()
915 HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16… in HAL_SMARTCARD_Receive() argument
922 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Receive()
930 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Receive()
932 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Receive()
933 hsmartcard->RxState = HAL_SMARTCARD_STATE_BUSY_RX; in HAL_SMARTCARD_Receive()
938 hsmartcard->RxXferSize = Size; in HAL_SMARTCARD_Receive()
939 hsmartcard->RxXferCount = Size; in HAL_SMARTCARD_Receive()
942 while (hsmartcard->RxXferCount > 0U) in HAL_SMARTCARD_Receive()
944 hsmartcard->RxXferCount--; in HAL_SMARTCARD_Receive()
946 …if (SMARTCARD_WaitOnFlagUntilTimeout(hsmartcard, SMARTCARD_FLAG_RXNE, RESET, tickstart, Timeout) !… in HAL_SMARTCARD_Receive()
950 *ptmpdata = (uint8_t)(hsmartcard->Instance->RDR & (uint8_t)0x00FF); in HAL_SMARTCARD_Receive()
955 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Receive()
958 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Receive()
983 HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsmartcard, const uint8_t *pDa… in HAL_SMARTCARD_Transmit_IT() argument
986 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Transmit_IT()
994 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Transmit_IT()
996 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Transmit_IT()
997 hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY_TX; in HAL_SMARTCARD_Transmit_IT()
999 hsmartcard->pTxBuffPtr = pData; in HAL_SMARTCARD_Transmit_IT()
1000 hsmartcard->TxXferSize = Size; in HAL_SMARTCARD_Transmit_IT()
1001 hsmartcard->TxXferCount = Size; in HAL_SMARTCARD_Transmit_IT()
1002 hsmartcard->TxISR = NULL; in HAL_SMARTCARD_Transmit_IT()
1005 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit_IT()
1010 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX) in HAL_SMARTCARD_Transmit_IT()
1011 && (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in HAL_SMARTCARD_Transmit_IT()
1013 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_RE); in HAL_SMARTCARD_Transmit_IT()
1016 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_TE); in HAL_SMARTCARD_Transmit_IT()
1019 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit_IT()
1022 __HAL_SMARTCARD_FLUSH_DRREGISTER(hsmartcard); in HAL_SMARTCARD_Transmit_IT()
1025 if (hsmartcard->FifoMode == SMARTCARD_FIFOMODE_ENABLE) in HAL_SMARTCARD_Transmit_IT()
1028 hsmartcard->TxISR = SMARTCARD_TxISR_FIFOEN; in HAL_SMARTCARD_Transmit_IT()
1031 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Transmit_IT()
1034 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Transmit_IT()
1037 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_TXFTIE); in HAL_SMARTCARD_Transmit_IT()
1042 hsmartcard->TxISR = SMARTCARD_TxISR; in HAL_SMARTCARD_Transmit_IT()
1045 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Transmit_IT()
1048 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Transmit_IT()
1051 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_SMARTCARD_Transmit_IT()
1077 HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uin… in HAL_SMARTCARD_Receive_IT() argument
1080 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Receive_IT()
1088 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Receive_IT()
1090 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Receive_IT()
1091 hsmartcard->RxState = HAL_SMARTCARD_STATE_BUSY_RX; in HAL_SMARTCARD_Receive_IT()
1093 hsmartcard->pRxBuffPtr = pData; in HAL_SMARTCARD_Receive_IT()
1094 hsmartcard->RxXferSize = Size; in HAL_SMARTCARD_Receive_IT()
1095 hsmartcard->RxXferCount = Size; in HAL_SMARTCARD_Receive_IT()
1098 …if ((hsmartcard->FifoMode == SMARTCARD_FIFOMODE_ENABLE) && (Size >= hsmartcard->NbRxDataToProcess)) in HAL_SMARTCARD_Receive_IT()
1101 hsmartcard->RxISR = SMARTCARD_RxISR_FIFOEN; in HAL_SMARTCARD_Receive_IT()
1104 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Receive_IT()
1107 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_PEIE); in HAL_SMARTCARD_Receive_IT()
1108 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_RXFTIE); in HAL_SMARTCARD_Receive_IT()
1113 hsmartcard->RxISR = SMARTCARD_RxISR; in HAL_SMARTCARD_Receive_IT()
1116 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Receive_IT()
1119 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_SMARTCARD_Receive_IT()
1123 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Receive_IT()
1142 HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsmartcard, const uint8_t *pD… in HAL_SMARTCARD_Transmit_DMA() argument
1147 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Transmit_DMA()
1155 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Transmit_DMA()
1157 hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY_TX; in HAL_SMARTCARD_Transmit_DMA()
1159 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Transmit_DMA()
1160 hsmartcard->pTxBuffPtr = pData; in HAL_SMARTCARD_Transmit_DMA()
1161 hsmartcard->TxXferSize = Size; in HAL_SMARTCARD_Transmit_DMA()
1162 hsmartcard->TxXferCount = Size; in HAL_SMARTCARD_Transmit_DMA()
1165 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit_DMA()
1170 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX) in HAL_SMARTCARD_Transmit_DMA()
1171 && (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in HAL_SMARTCARD_Transmit_DMA()
1173 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_RE); in HAL_SMARTCARD_Transmit_DMA()
1176 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_TE); in HAL_SMARTCARD_Transmit_DMA()
1179 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit_DMA()
1182 __HAL_SMARTCARD_FLUSH_DRREGISTER(hsmartcard); in HAL_SMARTCARD_Transmit_DMA()
1185 hsmartcard->hdmatx->XferCpltCallback = SMARTCARD_DMATransmitCplt; in HAL_SMARTCARD_Transmit_DMA()
1188 hsmartcard->hdmatx->XferErrorCallback = SMARTCARD_DMAError; in HAL_SMARTCARD_Transmit_DMA()
1191 hsmartcard->hdmatx->XferAbortCallback = NULL; in HAL_SMARTCARD_Transmit_DMA()
1194 if ((hsmartcard->hdmatx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_SMARTCARD_Transmit_DMA()
1196 …if ((hsmartcard->hdmatx->LinkedListQueue != NULL) && (hsmartcard->hdmatx->LinkedListQueue->Head !=… in HAL_SMARTCARD_Transmit_DMA()
1199 hsmartcard->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = Size; in HAL_SMARTCARD_Transmit_DMA()
1202 hsmartcard->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in HAL_SMARTCARD_Transmit_DMA()
1203 (uint32_t)hsmartcard->pTxBuffPtr; in HAL_SMARTCARD_Transmit_DMA()
1206 hsmartcard->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_SMARTCARD_Transmit_DMA()
1207 (uint32_t)&hsmartcard->Instance->TDR; in HAL_SMARTCARD_Transmit_DMA()
1210 status = HAL_DMAEx_List_Start_IT(hsmartcard->hdmatx); in HAL_SMARTCARD_Transmit_DMA()
1221 status = HAL_DMA_Start_IT(hsmartcard->hdmatx, (uint32_t)hsmartcard->pTxBuffPtr, in HAL_SMARTCARD_Transmit_DMA()
1222 (uint32_t)&hsmartcard->Instance->TDR, Size); in HAL_SMARTCARD_Transmit_DMA()
1228 CLEAR_BIT(hsmartcard->Instance->ICR, USART_ICR_TCCF); in HAL_SMARTCARD_Transmit_DMA()
1231 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Transmit_DMA()
1234 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Transmit_DMA()
1238 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_Transmit_DMA()
1245 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_Transmit_DMA()
1248 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Transmit_DMA()
1251 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Transmit_DMA()
1272 HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, ui… in HAL_SMARTCARD_Receive_DMA() argument
1277 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Receive_DMA()
1285 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Receive_DMA()
1287 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Receive_DMA()
1288 hsmartcard->RxState = HAL_SMARTCARD_STATE_BUSY_RX; in HAL_SMARTCARD_Receive_DMA()
1290 hsmartcard->pRxBuffPtr = pData; in HAL_SMARTCARD_Receive_DMA()
1291 hsmartcard->RxXferSize = Size; in HAL_SMARTCARD_Receive_DMA()
1294 hsmartcard->hdmarx->XferCpltCallback = SMARTCARD_DMAReceiveCplt; in HAL_SMARTCARD_Receive_DMA()
1297 hsmartcard->hdmarx->XferErrorCallback = SMARTCARD_DMAError; in HAL_SMARTCARD_Receive_DMA()
1300 hsmartcard->hdmarx->XferAbortCallback = NULL; in HAL_SMARTCARD_Receive_DMA()
1303 if ((hsmartcard->hdmarx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_SMARTCARD_Receive_DMA()
1305 …if ((hsmartcard->hdmarx->LinkedListQueue != NULL) && (hsmartcard->hdmarx->LinkedListQueue->Head !=… in HAL_SMARTCARD_Receive_DMA()
1308 hsmartcard->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = Size; in HAL_SMARTCARD_Receive_DMA()
1311 hsmartcard->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in HAL_SMARTCARD_Receive_DMA()
1312 (uint32_t)&hsmartcard->Instance->RDR; in HAL_SMARTCARD_Receive_DMA()
1315 hsmartcard->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_SMARTCARD_Receive_DMA()
1316 (uint32_t)hsmartcard->pRxBuffPtr; in HAL_SMARTCARD_Receive_DMA()
1319 status = HAL_DMAEx_List_Start_IT(hsmartcard->hdmarx); in HAL_SMARTCARD_Receive_DMA()
1330 status = HAL_DMA_Start_IT(hsmartcard->hdmarx, (uint32_t)&hsmartcard->Instance->RDR, in HAL_SMARTCARD_Receive_DMA()
1331 (uint32_t)hsmartcard->pRxBuffPtr, Size); in HAL_SMARTCARD_Receive_DMA()
1337 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Receive_DMA()
1340 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_PEIE); in HAL_SMARTCARD_Receive_DMA()
1343 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Receive_DMA()
1347 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_Receive_DMA()
1354 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_Receive_DMA()
1357 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Receive_DMA()
1360 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Receive_DMA()
1385 HAL_StatusTypeDef HAL_SMARTCARD_Abort(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_Abort() argument
1389 CLEAR_BIT(hsmartcard->Instance->CR1, in HAL_SMARTCARD_Abort()
1392 CLEAR_BIT(hsmartcard->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_SMARTCARD_Abort()
1396 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_Abort()
1398 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_Abort()
1401 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_Abort()
1405 hsmartcard->hdmatx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort()
1407 if (HAL_DMA_Abort(hsmartcard->hdmatx) != HAL_OK) in HAL_SMARTCARD_Abort()
1409 if (HAL_DMA_GetError(hsmartcard->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_SMARTCARD_Abort()
1412 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_Abort()
1421 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_Abort()
1423 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_Abort()
1426 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_Abort()
1430 hsmartcard->hdmarx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort()
1432 if (HAL_DMA_Abort(hsmartcard->hdmarx) != HAL_OK) in HAL_SMARTCARD_Abort()
1434 if (HAL_DMA_GetError(hsmartcard->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_SMARTCARD_Abort()
1437 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_Abort()
1447 hsmartcard->TxXferCount = 0U; in HAL_SMARTCARD_Abort()
1448 hsmartcard->RxXferCount = 0U; in HAL_SMARTCARD_Abort()
1451 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in HAL_SMARTCARD_Abort()
1456 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Abort()
1457 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Abort()
1460 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Abort()
1478 HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortTransmit() argument
1481 CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in HAL_SMARTCARD_AbortTransmit()
1482 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_TXFTIE); in HAL_SMARTCARD_AbortTransmit()
1485 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_AbortTransmit()
1488 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_AbortTransmit()
1493 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_AbortTransmit()
1495 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_AbortTransmit()
1498 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_AbortTransmit()
1502 hsmartcard->hdmatx->XferAbortCallback = NULL; in HAL_SMARTCARD_AbortTransmit()
1504 if (HAL_DMA_Abort(hsmartcard->hdmatx) != HAL_OK) in HAL_SMARTCARD_AbortTransmit()
1506 if (HAL_DMA_GetError(hsmartcard->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_SMARTCARD_AbortTransmit()
1509 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_AbortTransmit()
1519 hsmartcard->TxXferCount = 0U; in HAL_SMARTCARD_AbortTransmit()
1522 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, SMARTCARD_CLEAR_FEF); in HAL_SMARTCARD_AbortTransmit()
1525 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortTransmit()
1543 HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortReceive() argument
1546 …CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE | in HAL_SMARTCARD_AbortReceive()
1548 CLEAR_BIT(hsmartcard->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_SMARTCARD_AbortReceive()
1551 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_AbortReceive()
1554 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_AbortReceive()
1559 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_AbortReceive()
1561 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_AbortReceive()
1564 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_AbortReceive()
1568 hsmartcard->hdmarx->XferAbortCallback = NULL; in HAL_SMARTCARD_AbortReceive()
1570 if (HAL_DMA_Abort(hsmartcard->hdmarx) != HAL_OK) in HAL_SMARTCARD_AbortReceive()
1572 if (HAL_DMA_GetError(hsmartcard->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_SMARTCARD_AbortReceive()
1575 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_AbortReceive()
1585 hsmartcard->RxXferCount = 0U; in HAL_SMARTCARD_AbortReceive()
1588 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in HAL_SMARTCARD_AbortReceive()
1593 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortReceive()
1613 HAL_StatusTypeDef HAL_SMARTCARD_Abort_IT(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_Abort_IT() argument
1619 CLEAR_BIT(hsmartcard->Instance->CR1, in HAL_SMARTCARD_Abort_IT()
1622 CLEAR_BIT(hsmartcard->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_SMARTCARD_Abort_IT()
1629 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_Abort_IT()
1633 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_Abort_IT()
1635 hsmartcard->hdmatx->XferAbortCallback = SMARTCARD_DMATxAbortCallback; in HAL_SMARTCARD_Abort_IT()
1639 hsmartcard->hdmatx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort_IT()
1643 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_Abort_IT()
1647 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_Abort_IT()
1649 hsmartcard->hdmarx->XferAbortCallback = SMARTCARD_DMARxAbortCallback; in HAL_SMARTCARD_Abort_IT()
1653 hsmartcard->hdmarx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort_IT()
1658 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_Abort_IT()
1661 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_Abort_IT()
1664 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_Abort_IT()
1670 if (HAL_DMA_Abort_IT(hsmartcard->hdmatx) != HAL_OK) in HAL_SMARTCARD_Abort_IT()
1672 hsmartcard->hdmatx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort_IT()
1682 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_Abort_IT()
1684 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_Abort_IT()
1687 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_Abort_IT()
1693 if (HAL_DMA_Abort_IT(hsmartcard->hdmarx) != HAL_OK) in HAL_SMARTCARD_Abort_IT()
1695 hsmartcard->hdmarx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort_IT()
1710 hsmartcard->TxXferCount = 0U; in HAL_SMARTCARD_Abort_IT()
1711 hsmartcard->RxXferCount = 0U; in HAL_SMARTCARD_Abort_IT()
1714 hsmartcard->RxISR = NULL; in HAL_SMARTCARD_Abort_IT()
1715 hsmartcard->TxISR = NULL; in HAL_SMARTCARD_Abort_IT()
1718 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Abort_IT()
1721 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in HAL_SMARTCARD_Abort_IT()
1726 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Abort_IT()
1727 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Abort_IT()
1732 hsmartcard->AbortCpltCallback(hsmartcard); in HAL_SMARTCARD_Abort_IT()
1735 HAL_SMARTCARD_AbortCpltCallback(hsmartcard); in HAL_SMARTCARD_Abort_IT()
1757 HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit_IT(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortTransmit_IT() argument
1760 CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in HAL_SMARTCARD_AbortTransmit_IT()
1761 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_TXFTIE); in HAL_SMARTCARD_AbortTransmit_IT()
1764 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_AbortTransmit_IT()
1767 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_AbortTransmit_IT()
1772 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_AbortTransmit_IT()
1774 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_AbortTransmit_IT()
1777 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_AbortTransmit_IT()
1781 hsmartcard->hdmatx->XferAbortCallback = SMARTCARD_DMATxOnlyAbortCallback; in HAL_SMARTCARD_AbortTransmit_IT()
1784 if (HAL_DMA_Abort_IT(hsmartcard->hdmatx) != HAL_OK) in HAL_SMARTCARD_AbortTransmit_IT()
1787 hsmartcard->hdmatx->XferAbortCallback(hsmartcard->hdmatx); in HAL_SMARTCARD_AbortTransmit_IT()
1793 hsmartcard->TxXferCount = 0U; in HAL_SMARTCARD_AbortTransmit_IT()
1796 hsmartcard->TxISR = NULL; in HAL_SMARTCARD_AbortTransmit_IT()
1799 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortTransmit_IT()
1804 hsmartcard->AbortTransmitCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortTransmit_IT()
1807 HAL_SMARTCARD_AbortTransmitCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortTransmit_IT()
1815 hsmartcard->TxXferCount = 0U; in HAL_SMARTCARD_AbortTransmit_IT()
1818 hsmartcard->TxISR = NULL; in HAL_SMARTCARD_AbortTransmit_IT()
1821 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, SMARTCARD_CLEAR_FEF); in HAL_SMARTCARD_AbortTransmit_IT()
1824 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortTransmit_IT()
1829 hsmartcard->AbortTransmitCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortTransmit_IT()
1832 HAL_SMARTCARD_AbortTransmitCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortTransmit_IT()
1854 HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive_IT(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortReceive_IT() argument
1857 …CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE | in HAL_SMARTCARD_AbortReceive_IT()
1859 CLEAR_BIT(hsmartcard->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_SMARTCARD_AbortReceive_IT()
1862 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_AbortReceive_IT()
1865 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_AbortReceive_IT()
1870 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_AbortReceive_IT()
1872 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_AbortReceive_IT()
1875 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_AbortReceive_IT()
1879 hsmartcard->hdmarx->XferAbortCallback = SMARTCARD_DMARxOnlyAbortCallback; in HAL_SMARTCARD_AbortReceive_IT()
1882 if (HAL_DMA_Abort_IT(hsmartcard->hdmarx) != HAL_OK) in HAL_SMARTCARD_AbortReceive_IT()
1885 hsmartcard->hdmarx->XferAbortCallback(hsmartcard->hdmarx); in HAL_SMARTCARD_AbortReceive_IT()
1891 hsmartcard->RxXferCount = 0U; in HAL_SMARTCARD_AbortReceive_IT()
1894 hsmartcard->RxISR = NULL; in HAL_SMARTCARD_AbortReceive_IT()
1897 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in HAL_SMARTCARD_AbortReceive_IT()
1902 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortReceive_IT()
1907 hsmartcard->AbortReceiveCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortReceive_IT()
1910 HAL_SMARTCARD_AbortReceiveCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortReceive_IT()
1918 hsmartcard->RxXferCount = 0U; in HAL_SMARTCARD_AbortReceive_IT()
1921 hsmartcard->RxISR = NULL; in HAL_SMARTCARD_AbortReceive_IT()
1924 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in HAL_SMARTCARD_AbortReceive_IT()
1929 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortReceive_IT()
1934 hsmartcard->AbortReceiveCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortReceive_IT()
1937 HAL_SMARTCARD_AbortReceiveCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortReceive_IT()
1950 void HAL_SMARTCARD_IRQHandler(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_IRQHandler() argument
1952 uint32_t isrflags = READ_REG(hsmartcard->Instance->ISR); in HAL_SMARTCARD_IRQHandler()
1953 uint32_t cr1its = READ_REG(hsmartcard->Instance->CR1); in HAL_SMARTCARD_IRQHandler()
1954 uint32_t cr3its = READ_REG(hsmartcard->Instance->CR3); in HAL_SMARTCARD_IRQHandler()
1967 if (hsmartcard->RxISR != NULL) in HAL_SMARTCARD_IRQHandler()
1969 hsmartcard->RxISR(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1983 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_PEF); in HAL_SMARTCARD_IRQHandler()
1985 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_PE; in HAL_SMARTCARD_IRQHandler()
1991 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_FEF); in HAL_SMARTCARD_IRQHandler()
1993 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_FE; in HAL_SMARTCARD_IRQHandler()
1999 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_NEF); in HAL_SMARTCARD_IRQHandler()
2001 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_NE; in HAL_SMARTCARD_IRQHandler()
2010 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_OREF); in HAL_SMARTCARD_IRQHandler()
2012 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_ORE; in HAL_SMARTCARD_IRQHandler()
2018 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_RTOF); in HAL_SMARTCARD_IRQHandler()
2020 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_RTO; in HAL_SMARTCARD_IRQHandler()
2024 if (hsmartcard->ErrorCode != HAL_SMARTCARD_ERROR_NONE) in HAL_SMARTCARD_IRQHandler()
2031 if (hsmartcard->RxISR != NULL) in HAL_SMARTCARD_IRQHandler()
2033 hsmartcard->RxISR(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2042 errorcode = hsmartcard->ErrorCode; in HAL_SMARTCARD_IRQHandler()
2043 if ((HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_IRQHandler()
2049 SMARTCARD_EndRxTransfer(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2053 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_IRQHandler()
2055 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_IRQHandler()
2058 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_IRQHandler()
2062 hsmartcard->hdmarx->XferAbortCallback = SMARTCARD_DMAAbortOnError; in HAL_SMARTCARD_IRQHandler()
2065 if (HAL_DMA_Abort_IT(hsmartcard->hdmarx) != HAL_OK) in HAL_SMARTCARD_IRQHandler()
2068 hsmartcard->hdmarx->XferAbortCallback(hsmartcard->hdmarx); in HAL_SMARTCARD_IRQHandler()
2075 hsmartcard->ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2078 HAL_SMARTCARD_ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2087 hsmartcard->ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2090 HAL_SMARTCARD_ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2097 else if ((hsmartcard->gState == HAL_SMARTCARD_STATE_BUSY_TX) in HAL_SMARTCARD_IRQHandler()
2103 SMARTCARD_EndTxTransfer(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2107 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_IRQHandler()
2109 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_IRQHandler()
2112 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_IRQHandler()
2116 hsmartcard->hdmatx->XferAbortCallback = SMARTCARD_DMAAbortOnError; in HAL_SMARTCARD_IRQHandler()
2119 if (HAL_DMA_Abort_IT(hsmartcard->hdmatx) != HAL_OK) in HAL_SMARTCARD_IRQHandler()
2122 hsmartcard->hdmatx->XferAbortCallback(hsmartcard->hdmatx); in HAL_SMARTCARD_IRQHandler()
2129 hsmartcard->ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2132 HAL_SMARTCARD_ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2141 hsmartcard->ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2144 HAL_SMARTCARD_ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2154 hsmartcard->ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2157 HAL_SMARTCARD_ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2159 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_IRQHandler()
2169 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_IRQHandler()
2170 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2173 hsmartcard->RxCpltCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2176 HAL_SMARTCARD_RxCpltCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2180 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_EOBF); in HAL_SMARTCARD_IRQHandler()
2189 if (hsmartcard->TxISR != NULL) in HAL_SMARTCARD_IRQHandler()
2191 hsmartcard->TxISR(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2197 if (__HAL_SMARTCARD_GET_IT(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication) != RESET) in HAL_SMARTCARD_IRQHandler()
2199 …if (__HAL_SMARTCARD_GET_IT_SOURCE(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication) != … in HAL_SMARTCARD_IRQHandler()
2201 SMARTCARD_EndTransmit_IT(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2211 hsmartcard->TxFifoEmptyCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2214 HAL_SMARTCARDEx_TxFifoEmptyCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2224 hsmartcard->RxFifoFullCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2227 HAL_SMARTCARDEx_RxFifoFullCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2239 __weak void HAL_SMARTCARD_TxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_TxCpltCallback() argument
2242 UNUSED(hsmartcard); in HAL_SMARTCARD_TxCpltCallback()
2255 __weak void HAL_SMARTCARD_RxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_RxCpltCallback() argument
2258 UNUSED(hsmartcard); in HAL_SMARTCARD_RxCpltCallback()
2271 __weak void HAL_SMARTCARD_ErrorCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_ErrorCallback() argument
2274 UNUSED(hsmartcard); in HAL_SMARTCARD_ErrorCallback()
2287 __weak void HAL_SMARTCARD_AbortCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortCpltCallback() argument
2290 UNUSED(hsmartcard); in HAL_SMARTCARD_AbortCpltCallback()
2303 __weak void HAL_SMARTCARD_AbortTransmitCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortTransmitCpltCallback() argument
2306 UNUSED(hsmartcard); in HAL_SMARTCARD_AbortTransmitCpltCallback()
2319 __weak void HAL_SMARTCARD_AbortReceiveCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortReceiveCpltCallback() argument
2322 UNUSED(hsmartcard); in HAL_SMARTCARD_AbortReceiveCpltCallback()
2358 HAL_SMARTCARD_StateTypeDef HAL_SMARTCARD_GetState(const SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_GetState() argument
2363 temp1 = (uint32_t)hsmartcard->gState; in HAL_SMARTCARD_GetState()
2364 temp2 = (uint32_t)hsmartcard->RxState; in HAL_SMARTCARD_GetState()
2375 uint32_t HAL_SMARTCARD_GetError(const SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_GetError() argument
2377 return hsmartcard->ErrorCode; in HAL_SMARTCARD_GetError()
2398 void SMARTCARD_InitCallbacksToDefault(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_InitCallbacksToDefault() argument
2401 …hsmartcard->TxCpltCallback = HAL_SMARTCARD_TxCpltCallback; /* Legacy weak Tx… in SMARTCARD_InitCallbacksToDefault()
2402 …hsmartcard->RxCpltCallback = HAL_SMARTCARD_RxCpltCallback; /* Legacy weak Rx… in SMARTCARD_InitCallbacksToDefault()
2403 …hsmartcard->ErrorCallback = HAL_SMARTCARD_ErrorCallback; /* Legacy weak Er… in SMARTCARD_InitCallbacksToDefault()
2404 …hsmartcard->AbortCpltCallback = HAL_SMARTCARD_AbortCpltCallback; /* Legacy weak Ab… in SMARTCARD_InitCallbacksToDefault()
2405 hsmartcard->AbortTransmitCpltCallback = HAL_SMARTCARD_AbortTransmitCpltCallback; /* Legacy weak in SMARTCARD_InitCallbacksToDefault()
2407 hsmartcard->AbortReceiveCpltCallback = HAL_SMARTCARD_AbortReceiveCpltCallback; /* Legacy weak in SMARTCARD_InitCallbacksToDefault()
2409 hsmartcard->RxFifoFullCallback = HAL_SMARTCARDEx_RxFifoFullCallback; /* Legacy weak in SMARTCARD_InitCallbacksToDefault()
2411 hsmartcard->TxFifoEmptyCallback = HAL_SMARTCARDEx_TxFifoEmptyCallback; /* Legacy weak in SMARTCARD_InitCallbacksToDefault()
2423 static HAL_StatusTypeDef SMARTCARD_SetConfig(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_SetConfig() argument
2432 assert_param(IS_SMARTCARD_INSTANCE(hsmartcard->Instance)); in SMARTCARD_SetConfig()
2433 assert_param(IS_SMARTCARD_BAUDRATE(hsmartcard->Init.BaudRate)); in SMARTCARD_SetConfig()
2434 assert_param(IS_SMARTCARD_WORD_LENGTH(hsmartcard->Init.WordLength)); in SMARTCARD_SetConfig()
2435 assert_param(IS_SMARTCARD_STOPBITS(hsmartcard->Init.StopBits)); in SMARTCARD_SetConfig()
2436 assert_param(IS_SMARTCARD_PARITY(hsmartcard->Init.Parity)); in SMARTCARD_SetConfig()
2437 assert_param(IS_SMARTCARD_MODE(hsmartcard->Init.Mode)); in SMARTCARD_SetConfig()
2438 assert_param(IS_SMARTCARD_POLARITY(hsmartcard->Init.CLKPolarity)); in SMARTCARD_SetConfig()
2439 assert_param(IS_SMARTCARD_PHASE(hsmartcard->Init.CLKPhase)); in SMARTCARD_SetConfig()
2440 assert_param(IS_SMARTCARD_LASTBIT(hsmartcard->Init.CLKLastBit)); in SMARTCARD_SetConfig()
2441 assert_param(IS_SMARTCARD_ONE_BIT_SAMPLE(hsmartcard->Init.OneBitSampling)); in SMARTCARD_SetConfig()
2442 assert_param(IS_SMARTCARD_NACK(hsmartcard->Init.NACKEnable)); in SMARTCARD_SetConfig()
2443 assert_param(IS_SMARTCARD_TIMEOUT(hsmartcard->Init.TimeOutEnable)); in SMARTCARD_SetConfig()
2444 assert_param(IS_SMARTCARD_AUTORETRY_COUNT(hsmartcard->Init.AutoRetryCount)); in SMARTCARD_SetConfig()
2445 assert_param(IS_SMARTCARD_CLOCKPRESCALER(hsmartcard->Init.ClockPrescaler)); in SMARTCARD_SetConfig()
2453 tmpreg = (((uint32_t)hsmartcard->Init.Parity) | ((uint32_t)hsmartcard->Init.Mode) | in SMARTCARD_SetConfig()
2454 ((uint32_t)hsmartcard->Init.WordLength)); in SMARTCARD_SetConfig()
2455 MODIFY_REG(hsmartcard->Instance->CR1, USART_CR1_FIELDS, tmpreg); in SMARTCARD_SetConfig()
2458 tmpreg = hsmartcard->Init.StopBits; in SMARTCARD_SetConfig()
2460 tmpreg |= (uint32_t) USART_CR2_CLKEN | hsmartcard->Init.CLKPolarity; in SMARTCARD_SetConfig()
2461 tmpreg |= (uint32_t) hsmartcard->Init.CLKPhase | hsmartcard->Init.CLKLastBit; in SMARTCARD_SetConfig()
2462 tmpreg |= (uint32_t) hsmartcard->Init.TimeOutEnable; in SMARTCARD_SetConfig()
2463 MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_FIELDS, tmpreg); in SMARTCARD_SetConfig()
2473 tmpreg = (uint32_t) hsmartcard->Init.OneBitSampling | hsmartcard->Init.NACKEnable; in SMARTCARD_SetConfig()
2474 tmpreg |= ((uint32_t)hsmartcard->Init.AutoRetryCount << USART_CR3_SCARCNT_Pos); in SMARTCARD_SetConfig()
2475 MODIFY_REG(hsmartcard->Instance->CR3, USART_CR3_FIELDS, tmpreg); in SMARTCARD_SetConfig()
2480 MODIFY_REG(hsmartcard->Instance->PRESC, USART_PRESC_PRESCALER, hsmartcard->Init.ClockPrescaler); in SMARTCARD_SetConfig()
2483 …tmpreg = (hsmartcard->Init.Prescaler | ((uint32_t)hsmartcard->Init.GuardTime << USART_GTPR_GT_Pos)… in SMARTCARD_SetConfig()
2484 …MODIFY_REG(hsmartcard->Instance->GTPR, (uint16_t)(USART_GTPR_GT | USART_GTPR_PSC), (uint16_t)tmpre… in SMARTCARD_SetConfig()
2487 tmpreg = ((uint32_t)hsmartcard->Init.BlockLength << USART_RTOR_BLEN_Pos); in SMARTCARD_SetConfig()
2488 if (hsmartcard->Init.TimeOutEnable == SMARTCARD_TIMEOUT_ENABLE) in SMARTCARD_SetConfig()
2490 assert_param(IS_SMARTCARD_TIMEOUT_VALUE(hsmartcard->Init.TimeOutValue)); in SMARTCARD_SetConfig()
2491 tmpreg |= (uint32_t) hsmartcard->Init.TimeOutValue; in SMARTCARD_SetConfig()
2493 WRITE_REG(hsmartcard->Instance->RTOR, tmpreg); in SMARTCARD_SetConfig()
2496 SMARTCARD_GETCLOCKSOURCE(hsmartcard, clocksource); in SMARTCARD_SetConfig()
2502 tmpreg = (uint32_t)(((pclk / SMARTCARDPrescTable[hsmartcard->Init.ClockPrescaler]) + in SMARTCARD_SetConfig()
2503 (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2507 tmpreg = (uint32_t)(((pclk / SMARTCARDPrescTable[hsmartcard->Init.ClockPrescaler]) + in SMARTCARD_SetConfig()
2508 (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2512 tmpreg = (uint32_t)(((pclk / SMARTCARDPrescTable[hsmartcard->Init.ClockPrescaler]) + in SMARTCARD_SetConfig()
2513 (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2517 tmpreg = (uint32_t)(((pclk / SMARTCARDPrescTable[hsmartcard->Init.ClockPrescaler]) + in SMARTCARD_SetConfig()
2518 (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2524 SMARTCARDPrescTable[hsmartcard->Init.ClockPrescaler]) + in SMARTCARD_SetConfig()
2525 (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2529 tmpreg = (uint32_t)(((HSI_VALUE / SMARTCARDPrescTable[hsmartcard->Init.ClockPrescaler]) + in SMARTCARD_SetConfig()
2530 (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2534 tmpreg = (uint32_t)(((CSI_VALUE / SMARTCARDPrescTable[hsmartcard->Init.ClockPrescaler]) + in SMARTCARD_SetConfig()
2535 (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2538 …tmpreg = (uint32_t)(((uint16_t)(LSE_VALUE / SMARTCARDPrescTable[hsmartcard->Init.ClockPrescaler]) + in SMARTCARD_SetConfig()
2539 (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2549 hsmartcard->Instance->BRR = (uint16_t)tmpreg; in SMARTCARD_SetConfig()
2557 hsmartcard->NbTxDataToProcess = 1U; in SMARTCARD_SetConfig()
2558 hsmartcard->NbRxDataToProcess = 1U; in SMARTCARD_SetConfig()
2561 hsmartcard->RxISR = NULL; in SMARTCARD_SetConfig()
2562 hsmartcard->TxISR = NULL; in SMARTCARD_SetConfig()
2574 static void SMARTCARD_AdvFeatureConfig(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_AdvFeatureConfig() argument
2577 assert_param(IS_SMARTCARD_ADVFEATURE_INIT(hsmartcard->AdvancedInit.AdvFeatureInit)); in SMARTCARD_AdvFeatureConfig()
2580 if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_TXINVERT_INIT)) in SMARTCARD_AdvFeatureConfig()
2582 assert_param(IS_SMARTCARD_ADVFEATURE_TXINV(hsmartcard->AdvancedInit.TxPinLevelInvert)); in SMARTCARD_AdvFeatureConfig()
2583 … MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_TXINV, hsmartcard->AdvancedInit.TxPinLevelInvert); in SMARTCARD_AdvFeatureConfig()
2587 if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_RXINVERT_INIT)) in SMARTCARD_AdvFeatureConfig()
2589 assert_param(IS_SMARTCARD_ADVFEATURE_RXINV(hsmartcard->AdvancedInit.RxPinLevelInvert)); in SMARTCARD_AdvFeatureConfig()
2590 … MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_RXINV, hsmartcard->AdvancedInit.RxPinLevelInvert); in SMARTCARD_AdvFeatureConfig()
2594 if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_DATAINVERT_INIT)) in SMARTCARD_AdvFeatureConfig()
2596 assert_param(IS_SMARTCARD_ADVFEATURE_DATAINV(hsmartcard->AdvancedInit.DataInvert)); in SMARTCARD_AdvFeatureConfig()
2597 MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_DATAINV, hsmartcard->AdvancedInit.DataInvert); in SMARTCARD_AdvFeatureConfig()
2601 if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_SWAP_INIT)) in SMARTCARD_AdvFeatureConfig()
2603 assert_param(IS_SMARTCARD_ADVFEATURE_SWAP(hsmartcard->AdvancedInit.Swap)); in SMARTCARD_AdvFeatureConfig()
2604 MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_SWAP, hsmartcard->AdvancedInit.Swap); in SMARTCARD_AdvFeatureConfig()
2608 …if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_… in SMARTCARD_AdvFeatureConfig()
2610 assert_param(IS_SMARTCARD_OVERRUN(hsmartcard->AdvancedInit.OverrunDisable)); in SMARTCARD_AdvFeatureConfig()
2611 … MODIFY_REG(hsmartcard->Instance->CR3, USART_CR3_OVRDIS, hsmartcard->AdvancedInit.OverrunDisable); in SMARTCARD_AdvFeatureConfig()
2615 …if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_DMADISABLEONERROR… in SMARTCARD_AdvFeatureConfig()
2617 … assert_param(IS_SMARTCARD_ADVFEATURE_DMAONRXERROR(hsmartcard->AdvancedInit.DMADisableonRxError)); in SMARTCARD_AdvFeatureConfig()
2618 …MODIFY_REG(hsmartcard->Instance->CR3, USART_CR3_DDRE, hsmartcard->AdvancedInit.DMADisableonRxError… in SMARTCARD_AdvFeatureConfig()
2622 if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_MSBFIRST_INIT)) in SMARTCARD_AdvFeatureConfig()
2624 assert_param(IS_SMARTCARD_ADVFEATURE_MSBFIRST(hsmartcard->AdvancedInit.MSBFirst)); in SMARTCARD_AdvFeatureConfig()
2625 MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_MSBFIRST, hsmartcard->AdvancedInit.MSBFirst); in SMARTCARD_AdvFeatureConfig()
2636 static HAL_StatusTypeDef SMARTCARD_CheckIdleState(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_CheckIdleState() argument
2641 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in SMARTCARD_CheckIdleState()
2647 if ((hsmartcard->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in SMARTCARD_CheckIdleState()
2650 if (SMARTCARD_WaitOnFlagUntilTimeout(hsmartcard, USART_ISR_TEACK, RESET, tickstart, in SMARTCARD_CheckIdleState()
2658 if ((hsmartcard->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in SMARTCARD_CheckIdleState()
2661 if (SMARTCARD_WaitOnFlagUntilTimeout(hsmartcard, USART_ISR_REACK, RESET, tickstart, in SMARTCARD_CheckIdleState()
2670 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_CheckIdleState()
2671 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_CheckIdleState()
2674 __HAL_UNLOCK(hsmartcard); in SMARTCARD_CheckIdleState()
2690 static HAL_StatusTypeDef SMARTCARD_WaitOnFlagUntilTimeout(SMARTCARD_HandleTypeDef *hsmartcard, uint… in SMARTCARD_WaitOnFlagUntilTimeout() argument
2694 while ((__HAL_SMARTCARD_GET_FLAG(hsmartcard, Flag) ? SET : RESET) == Status) in SMARTCARD_WaitOnFlagUntilTimeout()
2703 …CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_… in SMARTCARD_WaitOnFlagUntilTimeout()
2704 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_WaitOnFlagUntilTimeout()
2706 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_WaitOnFlagUntilTimeout()
2707 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_WaitOnFlagUntilTimeout()
2710 __HAL_UNLOCK(hsmartcard); in SMARTCARD_WaitOnFlagUntilTimeout()
2725 static void SMARTCARD_EndTxTransfer(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_EndTxTransfer() argument
2728 CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in SMARTCARD_EndTxTransfer()
2729 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_EndTxTransfer()
2732 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_EndTxTransfer()
2742 static void SMARTCARD_EndRxTransfer(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_EndRxTransfer() argument
2745 CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in SMARTCARD_EndRxTransfer()
2746 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_EndRxTransfer()
2749 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_EndRxTransfer()
2762 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMATransmitCplt() local
2763 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMATransmitCplt()
2767 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in SMARTCARD_DMATransmitCplt()
2770 __HAL_SMARTCARD_ENABLE_IT(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication); in SMARTCARD_DMATransmitCplt()
2781 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMAReceiveCplt() local
2782 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMAReceiveCplt()
2785 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_PEIE); in SMARTCARD_DMAReceiveCplt()
2786 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_DMAReceiveCplt()
2790 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in SMARTCARD_DMAReceiveCplt()
2793 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMAReceiveCplt()
2797 hsmartcard->RxCpltCallback(hsmartcard); in SMARTCARD_DMAReceiveCplt()
2800 HAL_SMARTCARD_RxCpltCallback(hsmartcard); in SMARTCARD_DMAReceiveCplt()
2812 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMAError() local
2815 if (hsmartcard->gState == HAL_SMARTCARD_STATE_BUSY_TX) in SMARTCARD_DMAError()
2817 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in SMARTCARD_DMAError()
2819 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMAError()
2820 SMARTCARD_EndTxTransfer(hsmartcard); in SMARTCARD_DMAError()
2825 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_BUSY_RX) in SMARTCARD_DMAError()
2827 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in SMARTCARD_DMAError()
2829 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMAError()
2830 SMARTCARD_EndRxTransfer(hsmartcard); in SMARTCARD_DMAError()
2834 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_DMA; in SMARTCARD_DMAError()
2837 hsmartcard->ErrorCallback(hsmartcard); in SMARTCARD_DMAError()
2840 HAL_SMARTCARD_ErrorCallback(hsmartcard); in SMARTCARD_DMAError()
2852 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMAAbortOnError() local
2853 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMAAbortOnError()
2854 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMAAbortOnError()
2858 hsmartcard->ErrorCallback(hsmartcard); in SMARTCARD_DMAAbortOnError()
2861 HAL_SMARTCARD_ErrorCallback(hsmartcard); in SMARTCARD_DMAAbortOnError()
2875 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMATxAbortCallback() local
2877 hsmartcard->hdmatx->XferAbortCallback = NULL; in SMARTCARD_DMATxAbortCallback()
2880 if (hsmartcard->hdmarx != NULL) in SMARTCARD_DMATxAbortCallback()
2882 if (hsmartcard->hdmarx->XferAbortCallback != NULL) in SMARTCARD_DMATxAbortCallback()
2889 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMATxAbortCallback()
2890 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMATxAbortCallback()
2893 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in SMARTCARD_DMATxAbortCallback()
2896 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in SMARTCARD_DMATxAbortCallback()
2901 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMATxAbortCallback()
2902 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMATxAbortCallback()
2906 hsmartcard->AbortCpltCallback(hsmartcard); in SMARTCARD_DMATxAbortCallback()
2909 HAL_SMARTCARD_AbortCpltCallback(hsmartcard); in SMARTCARD_DMATxAbortCallback()
2924 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMARxAbortCallback() local
2926 hsmartcard->hdmarx->XferAbortCallback = NULL; in SMARTCARD_DMARxAbortCallback()
2929 if (hsmartcard->hdmatx != NULL) in SMARTCARD_DMARxAbortCallback()
2931 if (hsmartcard->hdmatx->XferAbortCallback != NULL) in SMARTCARD_DMARxAbortCallback()
2938 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMARxAbortCallback()
2939 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMARxAbortCallback()
2942 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in SMARTCARD_DMARxAbortCallback()
2945 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in SMARTCARD_DMARxAbortCallback()
2950 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMARxAbortCallback()
2951 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMARxAbortCallback()
2955 hsmartcard->AbortCpltCallback(hsmartcard); in SMARTCARD_DMARxAbortCallback()
2958 HAL_SMARTCARD_AbortCpltCallback(hsmartcard); in SMARTCARD_DMARxAbortCallback()
2973 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMATxOnlyAbortCallback() local
2975 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMATxOnlyAbortCallback()
2978 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, SMARTCARD_CLEAR_FEF); in SMARTCARD_DMATxOnlyAbortCallback()
2981 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMATxOnlyAbortCallback()
2985 hsmartcard->AbortTransmitCpltCallback(hsmartcard); in SMARTCARD_DMATxOnlyAbortCallback()
2988 HAL_SMARTCARD_AbortTransmitCpltCallback(hsmartcard); in SMARTCARD_DMATxOnlyAbortCallback()
3002 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMARxOnlyAbortCallback() local
3004 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMARxOnlyAbortCallback()
3007 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in SMARTCARD_DMARxOnlyAbortCallback()
3012 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMARxOnlyAbortCallback()
3016 hsmartcard->AbortReceiveCpltCallback(hsmartcard); in SMARTCARD_DMARxOnlyAbortCallback()
3019 HAL_SMARTCARD_AbortReceiveCpltCallback(hsmartcard); in SMARTCARD_DMARxOnlyAbortCallback()
3033 static void SMARTCARD_TxISR(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_TxISR() argument
3036 if (hsmartcard->gState == HAL_SMARTCARD_STATE_BUSY_TX) in SMARTCARD_TxISR()
3038 if (hsmartcard->TxXferCount == 0U) in SMARTCARD_TxISR()
3041 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in SMARTCARD_TxISR()
3044 __HAL_SMARTCARD_ENABLE_IT(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication); in SMARTCARD_TxISR()
3048 hsmartcard->Instance->TDR = (uint8_t)(*hsmartcard->pTxBuffPtr & 0xFFU); in SMARTCARD_TxISR()
3049 hsmartcard->pTxBuffPtr++; in SMARTCARD_TxISR()
3050 hsmartcard->TxXferCount--; in SMARTCARD_TxISR()
3064 static void SMARTCARD_TxISR_FIFOEN(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_TxISR_FIFOEN() argument
3069 if (hsmartcard->gState == HAL_SMARTCARD_STATE_BUSY_TX) in SMARTCARD_TxISR_FIFOEN()
3071 for (nb_tx_data = hsmartcard->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in SMARTCARD_TxISR_FIFOEN()
3073 if (hsmartcard->TxXferCount == 0U) in SMARTCARD_TxISR_FIFOEN()
3076 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in SMARTCARD_TxISR_FIFOEN()
3079 __HAL_SMARTCARD_ENABLE_IT(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication); in SMARTCARD_TxISR_FIFOEN()
3081 else if (READ_BIT(hsmartcard->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in SMARTCARD_TxISR_FIFOEN()
3083 hsmartcard->Instance->TDR = (uint8_t)(*hsmartcard->pTxBuffPtr & 0xFFU); in SMARTCARD_TxISR_FIFOEN()
3084 hsmartcard->pTxBuffPtr++; in SMARTCARD_TxISR_FIFOEN()
3085 hsmartcard->TxXferCount--; in SMARTCARD_TxISR_FIFOEN()
3101 static void SMARTCARD_EndTransmit_IT(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_EndTransmit_IT() argument
3104 __HAL_SMARTCARD_DISABLE_IT(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication); in SMARTCARD_EndTransmit_IT()
3107 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in SMARTCARD_EndTransmit_IT()
3110 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_EndTransmit_IT()
3114 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in SMARTCARD_EndTransmit_IT()
3115 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX) in SMARTCARD_EndTransmit_IT()
3116 && (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in SMARTCARD_EndTransmit_IT()
3120 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_RE); in SMARTCARD_EndTransmit_IT()
3122 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX_RX) in SMARTCARD_EndTransmit_IT()
3123 || (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in SMARTCARD_EndTransmit_IT()
3126 __HAL_SMARTCARD_FLUSH_DRREGISTER(hsmartcard); in SMARTCARD_EndTransmit_IT()
3128 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in SMARTCARD_EndTransmit_IT()
3131 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_EndTransmit_IT()
3134 hsmartcard->TxISR = NULL; in SMARTCARD_EndTransmit_IT()
3138 hsmartcard->TxCpltCallback(hsmartcard); in SMARTCARD_EndTransmit_IT()
3141 HAL_SMARTCARD_TxCpltCallback(hsmartcard); in SMARTCARD_EndTransmit_IT()
3154 static void SMARTCARD_RxISR(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_RxISR() argument
3157 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_BUSY_RX) in SMARTCARD_RxISR()
3159 *hsmartcard->pRxBuffPtr = (uint8_t)(hsmartcard->Instance->RDR & (uint8_t)0xFF); in SMARTCARD_RxISR()
3160 hsmartcard->pRxBuffPtr++; in SMARTCARD_RxISR()
3162 hsmartcard->RxXferCount--; in SMARTCARD_RxISR()
3163 if (hsmartcard->RxXferCount == 0U) in SMARTCARD_RxISR()
3165 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in SMARTCARD_RxISR()
3168 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in SMARTCARD_RxISR()
3171 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_RxISR()
3175 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_PEIE); in SMARTCARD_RxISR()
3177 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_RxISR()
3180 hsmartcard->RxISR = NULL; in SMARTCARD_RxISR()
3184 hsmartcard->RxCpltCallback(hsmartcard); in SMARTCARD_RxISR()
3187 HAL_SMARTCARD_RxCpltCallback(hsmartcard); in SMARTCARD_RxISR()
3194 __HAL_SMARTCARD_SEND_REQ(hsmartcard, SMARTCARD_RXDATA_FLUSH_REQUEST); in SMARTCARD_RxISR()
3207 static void SMARTCARD_RxISR_FIFOEN(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_RxISR_FIFOEN() argument
3213 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_BUSY_RX) in SMARTCARD_RxISR_FIFOEN()
3215 for (nb_rx_data = hsmartcard->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in SMARTCARD_RxISR_FIFOEN()
3217 *hsmartcard->pRxBuffPtr = (uint8_t)(hsmartcard->Instance->RDR & (uint8_t)0xFF); in SMARTCARD_RxISR_FIFOEN()
3218 hsmartcard->pRxBuffPtr++; in SMARTCARD_RxISR_FIFOEN()
3220 hsmartcard->RxXferCount--; in SMARTCARD_RxISR_FIFOEN()
3221 if (hsmartcard->RxXferCount == 0U) in SMARTCARD_RxISR_FIFOEN()
3223 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in SMARTCARD_RxISR_FIFOEN()
3226 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in SMARTCARD_RxISR_FIFOEN()
3229 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_RxISR_FIFOEN()
3233 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_PEIE); in SMARTCARD_RxISR_FIFOEN()
3235 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_RxISR_FIFOEN()
3238 hsmartcard->RxISR = NULL; in SMARTCARD_RxISR_FIFOEN()
3242 hsmartcard->RxCpltCallback(hsmartcard); in SMARTCARD_RxISR_FIFOEN()
3245 HAL_SMARTCARD_RxCpltCallback(hsmartcard); in SMARTCARD_RxISR_FIFOEN()
3254 rxdatacount = hsmartcard->RxXferCount; in SMARTCARD_RxISR_FIFOEN()
3255 if (((rxdatacount != 0U)) && (rxdatacount < hsmartcard->NbRxDataToProcess)) in SMARTCARD_RxISR_FIFOEN()
3258 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_RXFTIE); in SMARTCARD_RxISR_FIFOEN()
3261 hsmartcard->RxISR = SMARTCARD_RxISR; in SMARTCARD_RxISR_FIFOEN()
3264 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in SMARTCARD_RxISR_FIFOEN()
3270 __HAL_SMARTCARD_SEND_REQ(hsmartcard, SMARTCARD_RXDATA_FLUSH_REQUEST); in SMARTCARD_RxISR_FIFOEN()