Lines Matching refs:hsmartcard

227 void SMARTCARD_InitCallbacksToDefault(SMARTCARD_HandleTypeDef *hsmartcard);
229 static HAL_StatusTypeDef SMARTCARD_SetConfig(SMARTCARD_HandleTypeDef *hsmartcard);
230 static void SMARTCARD_AdvFeatureConfig(SMARTCARD_HandleTypeDef *hsmartcard);
231 static HAL_StatusTypeDef SMARTCARD_CheckIdleState(SMARTCARD_HandleTypeDef *hsmartcard);
232 static HAL_StatusTypeDef SMARTCARD_WaitOnFlagUntilTimeout(SMARTCARD_HandleTypeDef *hsmartcard, uint…
234 static void SMARTCARD_EndTxTransfer(SMARTCARD_HandleTypeDef *hsmartcard);
235 static void SMARTCARD_EndRxTransfer(SMARTCARD_HandleTypeDef *hsmartcard);
244 static void SMARTCARD_TxISR(SMARTCARD_HandleTypeDef *hsmartcard);
245 static void SMARTCARD_EndTransmit_IT(SMARTCARD_HandleTypeDef *hsmartcard);
246 static void SMARTCARD_RxISR(SMARTCARD_HandleTypeDef *hsmartcard);
312 HAL_StatusTypeDef HAL_SMARTCARD_Init(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_Init() argument
315 if (hsmartcard == NULL) in HAL_SMARTCARD_Init()
321 assert_param(IS_SMARTCARD_INSTANCE(hsmartcard->Instance)); in HAL_SMARTCARD_Init()
323 if (hsmartcard->gState == HAL_SMARTCARD_STATE_RESET) in HAL_SMARTCARD_Init()
326 hsmartcard->Lock = HAL_UNLOCKED; in HAL_SMARTCARD_Init()
329 SMARTCARD_InitCallbacksToDefault(hsmartcard); in HAL_SMARTCARD_Init()
331 if (hsmartcard->MspInitCallback == NULL) in HAL_SMARTCARD_Init()
333 hsmartcard->MspInitCallback = HAL_SMARTCARD_MspInit; in HAL_SMARTCARD_Init()
337 hsmartcard->MspInitCallback(hsmartcard); in HAL_SMARTCARD_Init()
340 HAL_SMARTCARD_MspInit(hsmartcard); in HAL_SMARTCARD_Init()
344 hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY; in HAL_SMARTCARD_Init()
347 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Init()
352 CLEAR_BIT(hsmartcard->Instance->CR2, USART_CR2_LINEN); in HAL_SMARTCARD_Init()
353 CLEAR_BIT(hsmartcard->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_SMARTCARD_Init()
356 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_SCEN); in HAL_SMARTCARD_Init()
359 if (SMARTCARD_SetConfig(hsmartcard) == HAL_ERROR) in HAL_SMARTCARD_Init()
365 SMARTCARD_TRANSMISSION_COMPLETION_SETTING(hsmartcard); in HAL_SMARTCARD_Init()
367 if (hsmartcard->AdvancedInit.AdvFeatureInit != SMARTCARD_ADVFEATURE_NO_INIT) in HAL_SMARTCARD_Init()
369 SMARTCARD_AdvFeatureConfig(hsmartcard); in HAL_SMARTCARD_Init()
373 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Init()
376 return (SMARTCARD_CheckIdleState(hsmartcard)); in HAL_SMARTCARD_Init()
385 HAL_StatusTypeDef HAL_SMARTCARD_DeInit(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_DeInit() argument
388 if (hsmartcard == NULL) in HAL_SMARTCARD_DeInit()
394 assert_param(IS_SMARTCARD_INSTANCE(hsmartcard->Instance)); in HAL_SMARTCARD_DeInit()
396 hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY; in HAL_SMARTCARD_DeInit()
399 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_DeInit()
401 WRITE_REG(hsmartcard->Instance->CR1, 0x0U); in HAL_SMARTCARD_DeInit()
402 WRITE_REG(hsmartcard->Instance->CR2, 0x0U); in HAL_SMARTCARD_DeInit()
403 WRITE_REG(hsmartcard->Instance->CR3, 0x0U); in HAL_SMARTCARD_DeInit()
404 WRITE_REG(hsmartcard->Instance->RTOR, 0x0U); in HAL_SMARTCARD_DeInit()
405 WRITE_REG(hsmartcard->Instance->GTPR, 0x0U); in HAL_SMARTCARD_DeInit()
409 if (hsmartcard->MspDeInitCallback == NULL) in HAL_SMARTCARD_DeInit()
411 hsmartcard->MspDeInitCallback = HAL_SMARTCARD_MspDeInit; in HAL_SMARTCARD_DeInit()
414 hsmartcard->MspDeInitCallback(hsmartcard); in HAL_SMARTCARD_DeInit()
416 HAL_SMARTCARD_MspDeInit(hsmartcard); in HAL_SMARTCARD_DeInit()
419 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_DeInit()
420 hsmartcard->gState = HAL_SMARTCARD_STATE_RESET; in HAL_SMARTCARD_DeInit()
421 hsmartcard->RxState = HAL_SMARTCARD_STATE_RESET; in HAL_SMARTCARD_DeInit()
424 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_DeInit()
435 __weak void HAL_SMARTCARD_MspInit(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_MspInit() argument
438 UNUSED(hsmartcard); in HAL_SMARTCARD_MspInit()
451 __weak void HAL_SMARTCARD_MspDeInit(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_MspDeInit() argument
454 UNUSED(hsmartcard); in HAL_SMARTCARD_MspDeInit()
482 HAL_StatusTypeDef HAL_SMARTCARD_RegisterCallback(SMARTCARD_HandleTypeDef *hsmartcard, in HAL_SMARTCARD_RegisterCallback() argument
491 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_RegisterCallback()
496 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_RegisterCallback()
502 hsmartcard->TxCpltCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
506 hsmartcard->RxCpltCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
510 hsmartcard->ErrorCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
514 hsmartcard->AbortCpltCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
518 hsmartcard->AbortTransmitCpltCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
522 hsmartcard->AbortReceiveCpltCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
527 hsmartcard->MspInitCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
531 hsmartcard->MspDeInitCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
536 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_RegisterCallback()
543 else if (hsmartcard->gState == HAL_SMARTCARD_STATE_RESET) in HAL_SMARTCARD_RegisterCallback()
548 hsmartcard->MspInitCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
552 hsmartcard->MspDeInitCallback = pCallback; in HAL_SMARTCARD_RegisterCallback()
557 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_RegisterCallback()
567 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_RegisterCallback()
595 HAL_StatusTypeDef HAL_SMARTCARD_UnRegisterCallback(SMARTCARD_HandleTypeDef *hsmartcard, in HAL_SMARTCARD_UnRegisterCallback() argument
600 if (HAL_SMARTCARD_STATE_READY == hsmartcard->gState) in HAL_SMARTCARD_UnRegisterCallback()
605hsmartcard->TxCpltCallback = HAL_SMARTCARD_TxCpltCallback; /* Legacy weak TxCpltCa… in HAL_SMARTCARD_UnRegisterCallback()
609hsmartcard->RxCpltCallback = HAL_SMARTCARD_RxCpltCallback; /* Legacy weak RxCpltCa… in HAL_SMARTCARD_UnRegisterCallback()
613hsmartcard->ErrorCallback = HAL_SMARTCARD_ErrorCallback; /* Legacy weak ErrorCal… in HAL_SMARTCARD_UnRegisterCallback()
617hsmartcard->AbortCpltCallback = HAL_SMARTCARD_AbortCpltCallback; /* Legacy weak AbortCpl… in HAL_SMARTCARD_UnRegisterCallback()
621hsmartcard->AbortTransmitCpltCallback = HAL_SMARTCARD_AbortTransmitCpltCallback; /* Legacy weak in HAL_SMARTCARD_UnRegisterCallback()
626hsmartcard->AbortReceiveCpltCallback = HAL_SMARTCARD_AbortReceiveCpltCallback; /* Legacy weak in HAL_SMARTCARD_UnRegisterCallback()
632hsmartcard->MspInitCallback = HAL_SMARTCARD_MspInit; /* Legacy weak MspInitC… in HAL_SMARTCARD_UnRegisterCallback()
636hsmartcard->MspDeInitCallback = HAL_SMARTCARD_MspDeInit; /* Legacy weak MspDeIni… in HAL_SMARTCARD_UnRegisterCallback()
641 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_UnRegisterCallback()
648 else if (HAL_SMARTCARD_STATE_RESET == hsmartcard->gState) in HAL_SMARTCARD_UnRegisterCallback()
653 hsmartcard->MspInitCallback = HAL_SMARTCARD_MspInit; in HAL_SMARTCARD_UnRegisterCallback()
657 hsmartcard->MspDeInitCallback = HAL_SMARTCARD_MspDeInit; in HAL_SMARTCARD_UnRegisterCallback()
662 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_UnRegisterCallback()
672 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK; in HAL_SMARTCARD_UnRegisterCallback()
779 HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsmartcard, const uint8_t *pData,… in HAL_SMARTCARD_Transmit() argument
786 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Transmit()
794 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Transmit()
796 hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY_TX; in HAL_SMARTCARD_Transmit()
802 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit()
807 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX) in HAL_SMARTCARD_Transmit()
808 && (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in HAL_SMARTCARD_Transmit()
810 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_RE); in HAL_SMARTCARD_Transmit()
813 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_TE); in HAL_SMARTCARD_Transmit()
816 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit()
819 __HAL_SMARTCARD_FLUSH_DRREGISTER(hsmartcard); in HAL_SMARTCARD_Transmit()
821 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Transmit()
822 hsmartcard->TxXferSize = Size; in HAL_SMARTCARD_Transmit()
823 hsmartcard->TxXferCount = Size; in HAL_SMARTCARD_Transmit()
825 while (hsmartcard->TxXferCount > 0U) in HAL_SMARTCARD_Transmit()
827 hsmartcard->TxXferCount--; in HAL_SMARTCARD_Transmit()
828 …if (SMARTCARD_WaitOnFlagUntilTimeout(hsmartcard, SMARTCARD_FLAG_TXE, RESET, tickstart, Timeout) !=… in HAL_SMARTCARD_Transmit()
832 hsmartcard->Instance->TDR = (uint8_t)(*ptmpdata & 0xFFU); in HAL_SMARTCARD_Transmit()
835 …if (SMARTCARD_WaitOnFlagUntilTimeout(hsmartcard, SMARTCARD_TRANSMISSION_COMPLETION_FLAG(hsmartcard in HAL_SMARTCARD_Transmit()
842 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit()
843 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX) in HAL_SMARTCARD_Transmit()
844 && (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in HAL_SMARTCARD_Transmit()
848 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_RE); in HAL_SMARTCARD_Transmit()
850 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX_RX) in HAL_SMARTCARD_Transmit()
851 || (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in HAL_SMARTCARD_Transmit()
854 __HAL_SMARTCARD_FLUSH_DRREGISTER(hsmartcard); in HAL_SMARTCARD_Transmit()
856 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit()
859 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Transmit()
862 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Transmit()
881 HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16… in HAL_SMARTCARD_Receive() argument
888 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Receive()
896 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Receive()
898 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Receive()
899 hsmartcard->RxState = HAL_SMARTCARD_STATE_BUSY_RX; in HAL_SMARTCARD_Receive()
904 hsmartcard->RxXferSize = Size; in HAL_SMARTCARD_Receive()
905 hsmartcard->RxXferCount = Size; in HAL_SMARTCARD_Receive()
908 while (hsmartcard->RxXferCount > 0U) in HAL_SMARTCARD_Receive()
910 hsmartcard->RxXferCount--; in HAL_SMARTCARD_Receive()
912 …if (SMARTCARD_WaitOnFlagUntilTimeout(hsmartcard, SMARTCARD_FLAG_RXNE, RESET, tickstart, Timeout) !… in HAL_SMARTCARD_Receive()
916 *ptmpdata = (uint8_t)(hsmartcard->Instance->RDR & (uint8_t)0x00FF); in HAL_SMARTCARD_Receive()
921 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Receive()
924 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Receive()
942 HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsmartcard, const uint8_t *pDa… in HAL_SMARTCARD_Transmit_IT() argument
945 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Transmit_IT()
953 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Transmit_IT()
955 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Transmit_IT()
956 hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY_TX; in HAL_SMARTCARD_Transmit_IT()
958 hsmartcard->pTxBuffPtr = pData; in HAL_SMARTCARD_Transmit_IT()
959 hsmartcard->TxXferSize = Size; in HAL_SMARTCARD_Transmit_IT()
960 hsmartcard->TxXferCount = Size; in HAL_SMARTCARD_Transmit_IT()
961 hsmartcard->TxISR = NULL; in HAL_SMARTCARD_Transmit_IT()
964 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit_IT()
969 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX) in HAL_SMARTCARD_Transmit_IT()
970 && (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in HAL_SMARTCARD_Transmit_IT()
972 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_RE); in HAL_SMARTCARD_Transmit_IT()
975 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_TE); in HAL_SMARTCARD_Transmit_IT()
978 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit_IT()
981 __HAL_SMARTCARD_FLUSH_DRREGISTER(hsmartcard); in HAL_SMARTCARD_Transmit_IT()
985 hsmartcard->TxISR = SMARTCARD_TxISR; in HAL_SMARTCARD_Transmit_IT()
988 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Transmit_IT()
991 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Transmit_IT()
994 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_TXEIE); in HAL_SMARTCARD_Transmit_IT()
1012 HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uin… in HAL_SMARTCARD_Receive_IT() argument
1015 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Receive_IT()
1023 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Receive_IT()
1025 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Receive_IT()
1026 hsmartcard->RxState = HAL_SMARTCARD_STATE_BUSY_RX; in HAL_SMARTCARD_Receive_IT()
1028 hsmartcard->pRxBuffPtr = pData; in HAL_SMARTCARD_Receive_IT()
1029 hsmartcard->RxXferSize = Size; in HAL_SMARTCARD_Receive_IT()
1030 hsmartcard->RxXferCount = Size; in HAL_SMARTCARD_Receive_IT()
1034 hsmartcard->RxISR = SMARTCARD_RxISR; in HAL_SMARTCARD_Receive_IT()
1037 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Receive_IT()
1040 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_SMARTCARD_Receive_IT()
1043 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Receive_IT()
1061 HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsmartcard, const uint8_t *pD… in HAL_SMARTCARD_Transmit_DMA() argument
1064 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Transmit_DMA()
1072 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Transmit_DMA()
1074 hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY_TX; in HAL_SMARTCARD_Transmit_DMA()
1076 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Transmit_DMA()
1077 hsmartcard->pTxBuffPtr = pData; in HAL_SMARTCARD_Transmit_DMA()
1078 hsmartcard->TxXferSize = Size; in HAL_SMARTCARD_Transmit_DMA()
1079 hsmartcard->TxXferCount = Size; in HAL_SMARTCARD_Transmit_DMA()
1082 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit_DMA()
1087 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX) in HAL_SMARTCARD_Transmit_DMA()
1088 && (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in HAL_SMARTCARD_Transmit_DMA()
1090 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_RE); in HAL_SMARTCARD_Transmit_DMA()
1093 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_TE); in HAL_SMARTCARD_Transmit_DMA()
1096 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in HAL_SMARTCARD_Transmit_DMA()
1099 __HAL_SMARTCARD_FLUSH_DRREGISTER(hsmartcard); in HAL_SMARTCARD_Transmit_DMA()
1102 hsmartcard->hdmatx->XferCpltCallback = SMARTCARD_DMATransmitCplt; in HAL_SMARTCARD_Transmit_DMA()
1105 hsmartcard->hdmatx->XferErrorCallback = SMARTCARD_DMAError; in HAL_SMARTCARD_Transmit_DMA()
1108 hsmartcard->hdmatx->XferAbortCallback = NULL; in HAL_SMARTCARD_Transmit_DMA()
1111 …if (HAL_DMA_Start_IT(hsmartcard->hdmatx, (uint32_t)hsmartcard->pTxBuffPtr, (uint32_t)&hsmartcard->… in HAL_SMARTCARD_Transmit_DMA()
1115 CLEAR_BIT(hsmartcard->Instance->ICR, USART_ICR_TCCF); in HAL_SMARTCARD_Transmit_DMA()
1118 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Transmit_DMA()
1121 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Transmit_DMA()
1125 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_Transmit_DMA()
1132 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_Transmit_DMA()
1135 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Transmit_DMA()
1138 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Transmit_DMA()
1159 HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, ui… in HAL_SMARTCARD_Receive_DMA() argument
1162 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_Receive_DMA()
1170 __HAL_LOCK(hsmartcard); in HAL_SMARTCARD_Receive_DMA()
1172 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Receive_DMA()
1173 hsmartcard->RxState = HAL_SMARTCARD_STATE_BUSY_RX; in HAL_SMARTCARD_Receive_DMA()
1175 hsmartcard->pRxBuffPtr = pData; in HAL_SMARTCARD_Receive_DMA()
1176 hsmartcard->RxXferSize = Size; in HAL_SMARTCARD_Receive_DMA()
1179 hsmartcard->hdmarx->XferCpltCallback = SMARTCARD_DMAReceiveCplt; in HAL_SMARTCARD_Receive_DMA()
1182 hsmartcard->hdmarx->XferErrorCallback = SMARTCARD_DMAError; in HAL_SMARTCARD_Receive_DMA()
1185 hsmartcard->hdmarx->XferAbortCallback = NULL; in HAL_SMARTCARD_Receive_DMA()
1188 …if (HAL_DMA_Start_IT(hsmartcard->hdmarx, (uint32_t)&hsmartcard->Instance->RDR, (uint32_t)hsmartcar… in HAL_SMARTCARD_Receive_DMA()
1192 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Receive_DMA()
1195 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_PEIE); in HAL_SMARTCARD_Receive_DMA()
1198 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Receive_DMA()
1202 SET_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_Receive_DMA()
1209 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_Receive_DMA()
1212 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_Receive_DMA()
1215 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Receive_DMA()
1239 HAL_StatusTypeDef HAL_SMARTCARD_Abort(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_Abort() argument
1242 CLEAR_BIT(hsmartcard->Instance->CR1, in HAL_SMARTCARD_Abort()
1245 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Abort()
1248 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_Abort()
1250 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_Abort()
1253 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_Abort()
1257 hsmartcard->hdmatx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort()
1259 if (HAL_DMA_Abort(hsmartcard->hdmatx) != HAL_OK) in HAL_SMARTCARD_Abort()
1261 if (HAL_DMA_GetError(hsmartcard->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_SMARTCARD_Abort()
1264 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_Abort()
1273 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_Abort()
1275 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_Abort()
1278 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_Abort()
1282 hsmartcard->hdmarx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort()
1284 if (HAL_DMA_Abort(hsmartcard->hdmarx) != HAL_OK) in HAL_SMARTCARD_Abort()
1286 if (HAL_DMA_GetError(hsmartcard->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_SMARTCARD_Abort()
1289 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_Abort()
1298 hsmartcard->TxXferCount = 0U; in HAL_SMARTCARD_Abort()
1299 hsmartcard->RxXferCount = 0U; in HAL_SMARTCARD_Abort()
1302 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in HAL_SMARTCARD_Abort()
1307 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Abort()
1308 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Abort()
1311 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Abort()
1329 HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortTransmit() argument
1332 CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_SMARTCARD_AbortTransmit()
1335 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_AbortTransmit()
1338 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_AbortTransmit()
1342 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_AbortTransmit()
1344 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_AbortTransmit()
1347 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_AbortTransmit()
1351 hsmartcard->hdmatx->XferAbortCallback = NULL; in HAL_SMARTCARD_AbortTransmit()
1353 if (HAL_DMA_Abort(hsmartcard->hdmatx) != HAL_OK) in HAL_SMARTCARD_AbortTransmit()
1355 if (HAL_DMA_GetError(hsmartcard->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_SMARTCARD_AbortTransmit()
1358 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_AbortTransmit()
1367 hsmartcard->TxXferCount = 0U; in HAL_SMARTCARD_AbortTransmit()
1370 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, SMARTCARD_CLEAR_FEF); in HAL_SMARTCARD_AbortTransmit()
1373 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortTransmit()
1391 HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortReceive() argument
1394 …CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_RTOIE | USART_… in HAL_SMARTCARD_AbortReceive()
1395 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_AbortReceive()
1398 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_AbortReceive()
1401 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_AbortReceive()
1405 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_AbortReceive()
1407 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_AbortReceive()
1410 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_AbortReceive()
1414 hsmartcard->hdmarx->XferAbortCallback = NULL; in HAL_SMARTCARD_AbortReceive()
1416 if (HAL_DMA_Abort(hsmartcard->hdmarx) != HAL_OK) in HAL_SMARTCARD_AbortReceive()
1418 if (HAL_DMA_GetError(hsmartcard->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_SMARTCARD_AbortReceive()
1421 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_DMA; in HAL_SMARTCARD_AbortReceive()
1430 hsmartcard->RxXferCount = 0U; in HAL_SMARTCARD_AbortReceive()
1433 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in HAL_SMARTCARD_AbortReceive()
1438 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortReceive()
1458 HAL_StatusTypeDef HAL_SMARTCARD_Abort_IT(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_Abort_IT() argument
1463 CLEAR_BIT(hsmartcard->Instance->CR1, in HAL_SMARTCARD_Abort_IT()
1466 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_Abort_IT()
1472 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_Abort_IT()
1476 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_Abort_IT()
1478 hsmartcard->hdmatx->XferAbortCallback = SMARTCARD_DMATxAbortCallback; in HAL_SMARTCARD_Abort_IT()
1482 hsmartcard->hdmatx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort_IT()
1486 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_Abort_IT()
1490 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_Abort_IT()
1492 hsmartcard->hdmarx->XferAbortCallback = SMARTCARD_DMARxAbortCallback; in HAL_SMARTCARD_Abort_IT()
1496 hsmartcard->hdmarx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort_IT()
1501 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_Abort_IT()
1504 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_Abort_IT()
1507 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_Abort_IT()
1513 if (HAL_DMA_Abort_IT(hsmartcard->hdmatx) != HAL_OK) in HAL_SMARTCARD_Abort_IT()
1515 hsmartcard->hdmatx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort_IT()
1525 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_Abort_IT()
1527 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_Abort_IT()
1530 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_Abort_IT()
1536 if (HAL_DMA_Abort_IT(hsmartcard->hdmarx) != HAL_OK) in HAL_SMARTCARD_Abort_IT()
1538 hsmartcard->hdmarx->XferAbortCallback = NULL; in HAL_SMARTCARD_Abort_IT()
1552 hsmartcard->TxXferCount = 0U; in HAL_SMARTCARD_Abort_IT()
1553 hsmartcard->RxXferCount = 0U; in HAL_SMARTCARD_Abort_IT()
1556 hsmartcard->RxISR = NULL; in HAL_SMARTCARD_Abort_IT()
1557 hsmartcard->TxISR = NULL; in HAL_SMARTCARD_Abort_IT()
1560 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_Abort_IT()
1563 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in HAL_SMARTCARD_Abort_IT()
1568 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Abort_IT()
1569 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_Abort_IT()
1574 hsmartcard->AbortCpltCallback(hsmartcard); in HAL_SMARTCARD_Abort_IT()
1577 HAL_SMARTCARD_AbortCpltCallback(hsmartcard); in HAL_SMARTCARD_Abort_IT()
1599 HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit_IT(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortTransmit_IT() argument
1602 CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_SMARTCARD_AbortTransmit_IT()
1605 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_AbortTransmit_IT()
1608 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_AbortTransmit_IT()
1612 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_AbortTransmit_IT()
1614 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_AbortTransmit_IT()
1617 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_AbortTransmit_IT()
1621 hsmartcard->hdmatx->XferAbortCallback = SMARTCARD_DMATxOnlyAbortCallback; in HAL_SMARTCARD_AbortTransmit_IT()
1624 if (HAL_DMA_Abort_IT(hsmartcard->hdmatx) != HAL_OK) in HAL_SMARTCARD_AbortTransmit_IT()
1627 hsmartcard->hdmatx->XferAbortCallback(hsmartcard->hdmatx); in HAL_SMARTCARD_AbortTransmit_IT()
1633 hsmartcard->TxXferCount = 0U; in HAL_SMARTCARD_AbortTransmit_IT()
1636 hsmartcard->TxISR = NULL; in HAL_SMARTCARD_AbortTransmit_IT()
1639 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortTransmit_IT()
1644 hsmartcard->AbortTransmitCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortTransmit_IT()
1647 HAL_SMARTCARD_AbortTransmitCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortTransmit_IT()
1654 hsmartcard->TxXferCount = 0U; in HAL_SMARTCARD_AbortTransmit_IT()
1657 hsmartcard->TxISR = NULL; in HAL_SMARTCARD_AbortTransmit_IT()
1660 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, SMARTCARD_CLEAR_FEF); in HAL_SMARTCARD_AbortTransmit_IT()
1663 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortTransmit_IT()
1668 hsmartcard->AbortTransmitCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortTransmit_IT()
1671 HAL_SMARTCARD_AbortTransmitCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortTransmit_IT()
1693 HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive_IT(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortReceive_IT() argument
1696 …CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_RTOIE | USART_… in HAL_SMARTCARD_AbortReceive_IT()
1697 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_AbortReceive_IT()
1700 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in HAL_SMARTCARD_AbortReceive_IT()
1703 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in HAL_SMARTCARD_AbortReceive_IT()
1707 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_AbortReceive_IT()
1709 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_AbortReceive_IT()
1712 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_AbortReceive_IT()
1716 hsmartcard->hdmarx->XferAbortCallback = SMARTCARD_DMARxOnlyAbortCallback; in HAL_SMARTCARD_AbortReceive_IT()
1719 if (HAL_DMA_Abort_IT(hsmartcard->hdmarx) != HAL_OK) in HAL_SMARTCARD_AbortReceive_IT()
1722 hsmartcard->hdmarx->XferAbortCallback(hsmartcard->hdmarx); in HAL_SMARTCARD_AbortReceive_IT()
1728 hsmartcard->RxXferCount = 0U; in HAL_SMARTCARD_AbortReceive_IT()
1731 hsmartcard->RxISR = NULL; in HAL_SMARTCARD_AbortReceive_IT()
1734 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in HAL_SMARTCARD_AbortReceive_IT()
1739 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortReceive_IT()
1744 hsmartcard->AbortReceiveCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortReceive_IT()
1747 HAL_SMARTCARD_AbortReceiveCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortReceive_IT()
1754 hsmartcard->RxXferCount = 0U; in HAL_SMARTCARD_AbortReceive_IT()
1757 hsmartcard->RxISR = NULL; in HAL_SMARTCARD_AbortReceive_IT()
1760 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in HAL_SMARTCARD_AbortReceive_IT()
1765 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_AbortReceive_IT()
1770 hsmartcard->AbortReceiveCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortReceive_IT()
1773 HAL_SMARTCARD_AbortReceiveCpltCallback(hsmartcard); in HAL_SMARTCARD_AbortReceive_IT()
1786 void HAL_SMARTCARD_IRQHandler(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_IRQHandler() argument
1788 uint32_t isrflags = READ_REG(hsmartcard->Instance->ISR); in HAL_SMARTCARD_IRQHandler()
1789 uint32_t cr1its = READ_REG(hsmartcard->Instance->CR1); in HAL_SMARTCARD_IRQHandler()
1790 uint32_t cr3its = READ_REG(hsmartcard->Instance->CR3); in HAL_SMARTCARD_IRQHandler()
1802 if (hsmartcard->RxISR != NULL) in HAL_SMARTCARD_IRQHandler()
1804 hsmartcard->RxISR(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1818 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_PEF); in HAL_SMARTCARD_IRQHandler()
1820 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_PE; in HAL_SMARTCARD_IRQHandler()
1826 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_FEF); in HAL_SMARTCARD_IRQHandler()
1828 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_FE; in HAL_SMARTCARD_IRQHandler()
1834 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_NEF); in HAL_SMARTCARD_IRQHandler()
1836 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_NE; in HAL_SMARTCARD_IRQHandler()
1844 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_OREF); in HAL_SMARTCARD_IRQHandler()
1846 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_ORE; in HAL_SMARTCARD_IRQHandler()
1852 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_RTOF); in HAL_SMARTCARD_IRQHandler()
1854 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_RTO; in HAL_SMARTCARD_IRQHandler()
1858 if (hsmartcard->ErrorCode != HAL_SMARTCARD_ERROR_NONE) in HAL_SMARTCARD_IRQHandler()
1864 if (hsmartcard->RxISR != NULL) in HAL_SMARTCARD_IRQHandler()
1866 hsmartcard->RxISR(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1875 errorcode = hsmartcard->ErrorCode; in HAL_SMARTCARD_IRQHandler()
1876 if ((HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_IRQHandler()
1882 SMARTCARD_EndRxTransfer(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1885 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in HAL_SMARTCARD_IRQHandler()
1887 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in HAL_SMARTCARD_IRQHandler()
1890 if (hsmartcard->hdmarx != NULL) in HAL_SMARTCARD_IRQHandler()
1894 hsmartcard->hdmarx->XferAbortCallback = SMARTCARD_DMAAbortOnError; in HAL_SMARTCARD_IRQHandler()
1897 if (HAL_DMA_Abort_IT(hsmartcard->hdmarx) != HAL_OK) in HAL_SMARTCARD_IRQHandler()
1900 hsmartcard->hdmarx->XferAbortCallback(hsmartcard->hdmarx); in HAL_SMARTCARD_IRQHandler()
1907 hsmartcard->ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1910 HAL_SMARTCARD_ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1918 hsmartcard->ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1921 HAL_SMARTCARD_ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1928 else if ((hsmartcard->gState == HAL_SMARTCARD_STATE_BUSY_TX) in HAL_SMARTCARD_IRQHandler()
1934 SMARTCARD_EndTxTransfer(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1937 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in HAL_SMARTCARD_IRQHandler()
1939 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in HAL_SMARTCARD_IRQHandler()
1942 if (hsmartcard->hdmatx != NULL) in HAL_SMARTCARD_IRQHandler()
1946 hsmartcard->hdmatx->XferAbortCallback = SMARTCARD_DMAAbortOnError; in HAL_SMARTCARD_IRQHandler()
1949 if (HAL_DMA_Abort_IT(hsmartcard->hdmatx) != HAL_OK) in HAL_SMARTCARD_IRQHandler()
1952 hsmartcard->hdmatx->XferAbortCallback(hsmartcard->hdmatx); in HAL_SMARTCARD_IRQHandler()
1959 hsmartcard->ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1962 HAL_SMARTCARD_ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1970 hsmartcard->ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1973 HAL_SMARTCARD_ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1983 hsmartcard->ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1986 HAL_SMARTCARD_ErrorCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
1988 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in HAL_SMARTCARD_IRQHandler()
1998 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in HAL_SMARTCARD_IRQHandler()
1999 __HAL_UNLOCK(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2002 hsmartcard->RxCpltCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2005 HAL_SMARTCARD_RxCpltCallback(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2009 __HAL_SMARTCARD_CLEAR_IT(hsmartcard, SMARTCARD_CLEAR_EOBF); in HAL_SMARTCARD_IRQHandler()
2017 if (hsmartcard->TxISR != NULL) in HAL_SMARTCARD_IRQHandler()
2019 hsmartcard->TxISR(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2025 if (__HAL_SMARTCARD_GET_IT(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication) != RESET) in HAL_SMARTCARD_IRQHandler()
2027 …if (__HAL_SMARTCARD_GET_IT_SOURCE(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication) != … in HAL_SMARTCARD_IRQHandler()
2029 SMARTCARD_EndTransmit_IT(hsmartcard); in HAL_SMARTCARD_IRQHandler()
2042 __weak void HAL_SMARTCARD_TxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_TxCpltCallback() argument
2045 UNUSED(hsmartcard); in HAL_SMARTCARD_TxCpltCallback()
2058 __weak void HAL_SMARTCARD_RxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_RxCpltCallback() argument
2061 UNUSED(hsmartcard); in HAL_SMARTCARD_RxCpltCallback()
2074 __weak void HAL_SMARTCARD_ErrorCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_ErrorCallback() argument
2077 UNUSED(hsmartcard); in HAL_SMARTCARD_ErrorCallback()
2090 __weak void HAL_SMARTCARD_AbortCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortCpltCallback() argument
2093 UNUSED(hsmartcard); in HAL_SMARTCARD_AbortCpltCallback()
2106 __weak void HAL_SMARTCARD_AbortTransmitCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortTransmitCpltCallback() argument
2109 UNUSED(hsmartcard); in HAL_SMARTCARD_AbortTransmitCpltCallback()
2122 __weak void HAL_SMARTCARD_AbortReceiveCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_AbortReceiveCpltCallback() argument
2125 UNUSED(hsmartcard); in HAL_SMARTCARD_AbortReceiveCpltCallback()
2161 HAL_SMARTCARD_StateTypeDef HAL_SMARTCARD_GetState(const SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_GetState() argument
2166 temp1 = (uint32_t)hsmartcard->gState; in HAL_SMARTCARD_GetState()
2167 temp2 = (uint32_t)hsmartcard->RxState; in HAL_SMARTCARD_GetState()
2178 uint32_t HAL_SMARTCARD_GetError(const SMARTCARD_HandleTypeDef *hsmartcard) in HAL_SMARTCARD_GetError() argument
2180 return hsmartcard->ErrorCode; in HAL_SMARTCARD_GetError()
2201 void SMARTCARD_InitCallbacksToDefault(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_InitCallbacksToDefault() argument
2204hsmartcard->TxCpltCallback = HAL_SMARTCARD_TxCpltCallback; /* Legacy weak Tx… in SMARTCARD_InitCallbacksToDefault()
2205hsmartcard->RxCpltCallback = HAL_SMARTCARD_RxCpltCallback; /* Legacy weak Rx… in SMARTCARD_InitCallbacksToDefault()
2206hsmartcard->ErrorCallback = HAL_SMARTCARD_ErrorCallback; /* Legacy weak Er… in SMARTCARD_InitCallbacksToDefault()
2207hsmartcard->AbortCpltCallback = HAL_SMARTCARD_AbortCpltCallback; /* Legacy weak Ab… in SMARTCARD_InitCallbacksToDefault()
2208 hsmartcard->AbortTransmitCpltCallback = HAL_SMARTCARD_AbortTransmitCpltCallback; /* Legacy weak in SMARTCARD_InitCallbacksToDefault()
2210 hsmartcard->AbortReceiveCpltCallback = HAL_SMARTCARD_AbortReceiveCpltCallback; /* Legacy weak in SMARTCARD_InitCallbacksToDefault()
2222 static HAL_StatusTypeDef SMARTCARD_SetConfig(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_SetConfig() argument
2230 assert_param(IS_SMARTCARD_INSTANCE(hsmartcard->Instance)); in SMARTCARD_SetConfig()
2231 assert_param(IS_SMARTCARD_BAUDRATE(hsmartcard->Init.BaudRate)); in SMARTCARD_SetConfig()
2232 assert_param(IS_SMARTCARD_WORD_LENGTH(hsmartcard->Init.WordLength)); in SMARTCARD_SetConfig()
2233 assert_param(IS_SMARTCARD_STOPBITS(hsmartcard->Init.StopBits)); in SMARTCARD_SetConfig()
2234 assert_param(IS_SMARTCARD_PARITY(hsmartcard->Init.Parity)); in SMARTCARD_SetConfig()
2235 assert_param(IS_SMARTCARD_MODE(hsmartcard->Init.Mode)); in SMARTCARD_SetConfig()
2236 assert_param(IS_SMARTCARD_POLARITY(hsmartcard->Init.CLKPolarity)); in SMARTCARD_SetConfig()
2237 assert_param(IS_SMARTCARD_PHASE(hsmartcard->Init.CLKPhase)); in SMARTCARD_SetConfig()
2238 assert_param(IS_SMARTCARD_LASTBIT(hsmartcard->Init.CLKLastBit)); in SMARTCARD_SetConfig()
2239 assert_param(IS_SMARTCARD_ONE_BIT_SAMPLE(hsmartcard->Init.OneBitSampling)); in SMARTCARD_SetConfig()
2240 assert_param(IS_SMARTCARD_NACK(hsmartcard->Init.NACKEnable)); in SMARTCARD_SetConfig()
2241 assert_param(IS_SMARTCARD_TIMEOUT(hsmartcard->Init.TimeOutEnable)); in SMARTCARD_SetConfig()
2242 assert_param(IS_SMARTCARD_AUTORETRY_COUNT(hsmartcard->Init.AutoRetryCount)); in SMARTCARD_SetConfig()
2250 tmpreg = (((uint32_t)hsmartcard->Init.Parity) | ((uint32_t)hsmartcard->Init.Mode) | in SMARTCARD_SetConfig()
2251 ((uint32_t)hsmartcard->Init.WordLength)); in SMARTCARD_SetConfig()
2252 MODIFY_REG(hsmartcard->Instance->CR1, USART_CR1_FIELDS, tmpreg); in SMARTCARD_SetConfig()
2255 tmpreg = hsmartcard->Init.StopBits; in SMARTCARD_SetConfig()
2257 tmpreg |= (uint32_t) USART_CR2_CLKEN | hsmartcard->Init.CLKPolarity; in SMARTCARD_SetConfig()
2258 tmpreg |= (uint32_t) hsmartcard->Init.CLKPhase | hsmartcard->Init.CLKLastBit; in SMARTCARD_SetConfig()
2259 tmpreg |= (uint32_t) hsmartcard->Init.TimeOutEnable; in SMARTCARD_SetConfig()
2260 MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_FIELDS, tmpreg); in SMARTCARD_SetConfig()
2270 tmpreg = (uint32_t) hsmartcard->Init.OneBitSampling | hsmartcard->Init.NACKEnable; in SMARTCARD_SetConfig()
2271 tmpreg |= ((uint32_t)hsmartcard->Init.AutoRetryCount << USART_CR3_SCARCNT_Pos); in SMARTCARD_SetConfig()
2272 MODIFY_REG(hsmartcard->Instance->CR3, USART_CR3_FIELDS, tmpreg); in SMARTCARD_SetConfig()
2276 …tmpreg = (hsmartcard->Init.Prescaler | ((uint32_t)hsmartcard->Init.GuardTime << USART_GTPR_GT_Pos)… in SMARTCARD_SetConfig()
2277 …MODIFY_REG(hsmartcard->Instance->GTPR, (uint16_t)(USART_GTPR_GT | USART_GTPR_PSC), (uint16_t)tmpre… in SMARTCARD_SetConfig()
2280 tmpreg = ((uint32_t)hsmartcard->Init.BlockLength << USART_RTOR_BLEN_Pos); in SMARTCARD_SetConfig()
2281 if (hsmartcard->Init.TimeOutEnable == SMARTCARD_TIMEOUT_ENABLE) in SMARTCARD_SetConfig()
2283 assert_param(IS_SMARTCARD_TIMEOUT_VALUE(hsmartcard->Init.TimeOutValue)); in SMARTCARD_SetConfig()
2284 tmpreg |= (uint32_t) hsmartcard->Init.TimeOutValue; in SMARTCARD_SetConfig()
2286 MODIFY_REG(hsmartcard->Instance->RTOR, (USART_RTOR_RTO | USART_RTOR_BLEN), tmpreg); in SMARTCARD_SetConfig()
2289 SMARTCARD_GETCLOCKSOURCE(hsmartcard, clocksource); in SMARTCARD_SetConfig()
2295 tmpreg = (uint32_t)((pclk + (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2299 tmpreg = (uint32_t)((pclk + (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2302 … tmpreg = (uint32_t)((HSI_VALUE + (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2306 tmpreg = (uint32_t)((pclk + (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2309 … tmpreg = (uint32_t)((LSE_VALUE + (hsmartcard->Init.BaudRate / 2U)) / hsmartcard->Init.BaudRate); in SMARTCARD_SetConfig()
2319 hsmartcard->Instance->BRR = (uint16_t)tmpreg; in SMARTCARD_SetConfig()
2328 hsmartcard->RxISR = NULL; in SMARTCARD_SetConfig()
2329 hsmartcard->TxISR = NULL; in SMARTCARD_SetConfig()
2341 static void SMARTCARD_AdvFeatureConfig(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_AdvFeatureConfig() argument
2344 assert_param(IS_SMARTCARD_ADVFEATURE_INIT(hsmartcard->AdvancedInit.AdvFeatureInit)); in SMARTCARD_AdvFeatureConfig()
2347 if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_TXINVERT_INIT)) in SMARTCARD_AdvFeatureConfig()
2349 assert_param(IS_SMARTCARD_ADVFEATURE_TXINV(hsmartcard->AdvancedInit.TxPinLevelInvert)); in SMARTCARD_AdvFeatureConfig()
2350 … MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_TXINV, hsmartcard->AdvancedInit.TxPinLevelInvert); in SMARTCARD_AdvFeatureConfig()
2354 if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_RXINVERT_INIT)) in SMARTCARD_AdvFeatureConfig()
2356 assert_param(IS_SMARTCARD_ADVFEATURE_RXINV(hsmartcard->AdvancedInit.RxPinLevelInvert)); in SMARTCARD_AdvFeatureConfig()
2357 … MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_RXINV, hsmartcard->AdvancedInit.RxPinLevelInvert); in SMARTCARD_AdvFeatureConfig()
2361 if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_DATAINVERT_INIT)) in SMARTCARD_AdvFeatureConfig()
2363 assert_param(IS_SMARTCARD_ADVFEATURE_DATAINV(hsmartcard->AdvancedInit.DataInvert)); in SMARTCARD_AdvFeatureConfig()
2364 MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_DATAINV, hsmartcard->AdvancedInit.DataInvert); in SMARTCARD_AdvFeatureConfig()
2368 if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_SWAP_INIT)) in SMARTCARD_AdvFeatureConfig()
2370 assert_param(IS_SMARTCARD_ADVFEATURE_SWAP(hsmartcard->AdvancedInit.Swap)); in SMARTCARD_AdvFeatureConfig()
2371 MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_SWAP, hsmartcard->AdvancedInit.Swap); in SMARTCARD_AdvFeatureConfig()
2375 …if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_… in SMARTCARD_AdvFeatureConfig()
2377 assert_param(IS_SMARTCARD_OVERRUN(hsmartcard->AdvancedInit.OverrunDisable)); in SMARTCARD_AdvFeatureConfig()
2378 … MODIFY_REG(hsmartcard->Instance->CR3, USART_CR3_OVRDIS, hsmartcard->AdvancedInit.OverrunDisable); in SMARTCARD_AdvFeatureConfig()
2382 …if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_DMADISABLEONERROR… in SMARTCARD_AdvFeatureConfig()
2384 … assert_param(IS_SMARTCARD_ADVFEATURE_DMAONRXERROR(hsmartcard->AdvancedInit.DMADisableonRxError)); in SMARTCARD_AdvFeatureConfig()
2385 …MODIFY_REG(hsmartcard->Instance->CR3, USART_CR3_DDRE, hsmartcard->AdvancedInit.DMADisableonRxError… in SMARTCARD_AdvFeatureConfig()
2389 if (HAL_IS_BIT_SET(hsmartcard->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_MSBFIRST_INIT)) in SMARTCARD_AdvFeatureConfig()
2391 assert_param(IS_SMARTCARD_ADVFEATURE_MSBFIRST(hsmartcard->AdvancedInit.MSBFirst)); in SMARTCARD_AdvFeatureConfig()
2392 MODIFY_REG(hsmartcard->Instance->CR2, USART_CR2_MSBFIRST, hsmartcard->AdvancedInit.MSBFirst); in SMARTCARD_AdvFeatureConfig()
2403 static HAL_StatusTypeDef SMARTCARD_CheckIdleState(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_CheckIdleState() argument
2408 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in SMARTCARD_CheckIdleState()
2414 if ((hsmartcard->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in SMARTCARD_CheckIdleState()
2417 if (SMARTCARD_WaitOnFlagUntilTimeout(hsmartcard, USART_ISR_TEACK, RESET, tickstart, in SMARTCARD_CheckIdleState()
2425 if ((hsmartcard->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in SMARTCARD_CheckIdleState()
2428 if (SMARTCARD_WaitOnFlagUntilTimeout(hsmartcard, USART_ISR_REACK, RESET, tickstart, in SMARTCARD_CheckIdleState()
2437 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_CheckIdleState()
2438 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_CheckIdleState()
2441 __HAL_UNLOCK(hsmartcard); in SMARTCARD_CheckIdleState()
2457 static HAL_StatusTypeDef SMARTCARD_WaitOnFlagUntilTimeout(SMARTCARD_HandleTypeDef *hsmartcard, uint… in SMARTCARD_WaitOnFlagUntilTimeout() argument
2461 while ((__HAL_SMARTCARD_GET_FLAG(hsmartcard, Flag) ? SET : RESET) == Status) in SMARTCARD_WaitOnFlagUntilTimeout()
2470 CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); in SMARTCARD_WaitOnFlagUntilTimeout()
2471 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_WaitOnFlagUntilTimeout()
2473 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_WaitOnFlagUntilTimeout()
2474 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_WaitOnFlagUntilTimeout()
2477 __HAL_UNLOCK(hsmartcard); in SMARTCARD_WaitOnFlagUntilTimeout()
2492 static void SMARTCARD_EndTxTransfer(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_EndTxTransfer() argument
2495 CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in SMARTCARD_EndTxTransfer()
2496 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_EndTxTransfer()
2499 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_EndTxTransfer()
2509 static void SMARTCARD_EndRxTransfer(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_EndRxTransfer() argument
2512 CLEAR_BIT(hsmartcard->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in SMARTCARD_EndRxTransfer()
2513 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_EndRxTransfer()
2516 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_EndRxTransfer()
2528 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMATransmitCplt() local
2529 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMATransmitCplt()
2533 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAT); in SMARTCARD_DMATransmitCplt()
2536 __HAL_SMARTCARD_ENABLE_IT(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication); in SMARTCARD_DMATransmitCplt()
2547 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMAReceiveCplt() local
2548 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMAReceiveCplt()
2551 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_PEIE); in SMARTCARD_DMAReceiveCplt()
2552 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_DMAReceiveCplt()
2556 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_DMAR); in SMARTCARD_DMAReceiveCplt()
2559 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMAReceiveCplt()
2563 hsmartcard->RxCpltCallback(hsmartcard); in SMARTCARD_DMAReceiveCplt()
2566 HAL_SMARTCARD_RxCpltCallback(hsmartcard); in SMARTCARD_DMAReceiveCplt()
2578 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMAError() local
2581 if (hsmartcard->gState == HAL_SMARTCARD_STATE_BUSY_TX) in SMARTCARD_DMAError()
2583 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAT)) in SMARTCARD_DMAError()
2585 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMAError()
2586 SMARTCARD_EndTxTransfer(hsmartcard); in SMARTCARD_DMAError()
2591 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_BUSY_RX) in SMARTCARD_DMAError()
2593 if (HAL_IS_BIT_SET(hsmartcard->Instance->CR3, USART_CR3_DMAR)) in SMARTCARD_DMAError()
2595 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMAError()
2596 SMARTCARD_EndRxTransfer(hsmartcard); in SMARTCARD_DMAError()
2600 hsmartcard->ErrorCode |= HAL_SMARTCARD_ERROR_DMA; in SMARTCARD_DMAError()
2603 hsmartcard->ErrorCallback(hsmartcard); in SMARTCARD_DMAError()
2606 HAL_SMARTCARD_ErrorCallback(hsmartcard); in SMARTCARD_DMAError()
2618 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMAAbortOnError() local
2619 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMAAbortOnError()
2620 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMAAbortOnError()
2624 hsmartcard->ErrorCallback(hsmartcard); in SMARTCARD_DMAAbortOnError()
2627 HAL_SMARTCARD_ErrorCallback(hsmartcard); in SMARTCARD_DMAAbortOnError()
2641 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMATxAbortCallback() local
2643 hsmartcard->hdmatx->XferAbortCallback = NULL; in SMARTCARD_DMATxAbortCallback()
2646 if (hsmartcard->hdmarx != NULL) in SMARTCARD_DMATxAbortCallback()
2648 if (hsmartcard->hdmarx->XferAbortCallback != NULL) in SMARTCARD_DMATxAbortCallback()
2655 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMATxAbortCallback()
2656 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMATxAbortCallback()
2659 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in SMARTCARD_DMATxAbortCallback()
2662 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in SMARTCARD_DMATxAbortCallback()
2667 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMATxAbortCallback()
2668 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMATxAbortCallback()
2672 hsmartcard->AbortCpltCallback(hsmartcard); in SMARTCARD_DMATxAbortCallback()
2675 HAL_SMARTCARD_AbortCpltCallback(hsmartcard); in SMARTCARD_DMATxAbortCallback()
2690 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMARxAbortCallback() local
2692 hsmartcard->hdmarx->XferAbortCallback = NULL; in SMARTCARD_DMARxAbortCallback()
2695 if (hsmartcard->hdmatx != NULL) in SMARTCARD_DMARxAbortCallback()
2697 if (hsmartcard->hdmatx->XferAbortCallback != NULL) in SMARTCARD_DMARxAbortCallback()
2704 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMARxAbortCallback()
2705 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMARxAbortCallback()
2708 hsmartcard->ErrorCode = HAL_SMARTCARD_ERROR_NONE; in SMARTCARD_DMARxAbortCallback()
2711 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in SMARTCARD_DMARxAbortCallback()
2716 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMARxAbortCallback()
2717 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMARxAbortCallback()
2721 hsmartcard->AbortCpltCallback(hsmartcard); in SMARTCARD_DMARxAbortCallback()
2724 HAL_SMARTCARD_AbortCpltCallback(hsmartcard); in SMARTCARD_DMARxAbortCallback()
2739 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMATxOnlyAbortCallback() local
2741 hsmartcard->TxXferCount = 0U; in SMARTCARD_DMATxOnlyAbortCallback()
2744 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, SMARTCARD_CLEAR_FEF); in SMARTCARD_DMATxOnlyAbortCallback()
2747 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMATxOnlyAbortCallback()
2751 hsmartcard->AbortTransmitCpltCallback(hsmartcard); in SMARTCARD_DMATxOnlyAbortCallback()
2754 HAL_SMARTCARD_AbortTransmitCpltCallback(hsmartcard); in SMARTCARD_DMATxOnlyAbortCallback()
2768 SMARTCARD_HandleTypeDef *hsmartcard = (SMARTCARD_HandleTypeDef *)(hdma->Parent); in SMARTCARD_DMARxOnlyAbortCallback() local
2770 hsmartcard->RxXferCount = 0U; in SMARTCARD_DMARxOnlyAbortCallback()
2773 __HAL_SMARTCARD_CLEAR_FLAG(hsmartcard, in SMARTCARD_DMARxOnlyAbortCallback()
2778 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_DMARxOnlyAbortCallback()
2782 hsmartcard->AbortReceiveCpltCallback(hsmartcard); in SMARTCARD_DMARxOnlyAbortCallback()
2785 HAL_SMARTCARD_AbortReceiveCpltCallback(hsmartcard); in SMARTCARD_DMARxOnlyAbortCallback()
2797 static void SMARTCARD_TxISR(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_TxISR() argument
2800 if (hsmartcard->gState == HAL_SMARTCARD_STATE_BUSY_TX) in SMARTCARD_TxISR()
2802 if (hsmartcard->TxXferCount == 0U) in SMARTCARD_TxISR()
2805 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_TXEIE); in SMARTCARD_TxISR()
2808 __HAL_SMARTCARD_ENABLE_IT(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication); in SMARTCARD_TxISR()
2812 hsmartcard->Instance->TDR = (uint8_t)(*hsmartcard->pTxBuffPtr & 0xFFU); in SMARTCARD_TxISR()
2813 hsmartcard->pTxBuffPtr++; in SMARTCARD_TxISR()
2814 hsmartcard->TxXferCount--; in SMARTCARD_TxISR()
2825 static void SMARTCARD_EndTransmit_IT(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_EndTransmit_IT() argument
2828 __HAL_SMARTCARD_DISABLE_IT(hsmartcard, hsmartcard->AdvancedInit.TxCompletionIndication); in SMARTCARD_EndTransmit_IT()
2831 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_READY) in SMARTCARD_EndTransmit_IT()
2834 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_EndTransmit_IT()
2838 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in SMARTCARD_EndTransmit_IT()
2839 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX) in SMARTCARD_EndTransmit_IT()
2840 && (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in SMARTCARD_EndTransmit_IT()
2844 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_RE); in SMARTCARD_EndTransmit_IT()
2846 if ((hsmartcard->Init.Mode == SMARTCARD_MODE_TX_RX) in SMARTCARD_EndTransmit_IT()
2847 || (hsmartcard->Init.NACKEnable == SMARTCARD_NACK_ENABLE)) in SMARTCARD_EndTransmit_IT()
2850 __HAL_SMARTCARD_FLUSH_DRREGISTER(hsmartcard); in SMARTCARD_EndTransmit_IT()
2852 SET_BIT(hsmartcard->Instance->CR1, USART_CR1_UE); in SMARTCARD_EndTransmit_IT()
2855 hsmartcard->gState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_EndTransmit_IT()
2858 hsmartcard->TxISR = NULL; in SMARTCARD_EndTransmit_IT()
2862 hsmartcard->TxCpltCallback(hsmartcard); in SMARTCARD_EndTransmit_IT()
2865 HAL_SMARTCARD_TxCpltCallback(hsmartcard); in SMARTCARD_EndTransmit_IT()
2877 static void SMARTCARD_RxISR(SMARTCARD_HandleTypeDef *hsmartcard) in SMARTCARD_RxISR() argument
2880 if (hsmartcard->RxState == HAL_SMARTCARD_STATE_BUSY_RX) in SMARTCARD_RxISR()
2882 *hsmartcard->pRxBuffPtr = (uint8_t)(hsmartcard->Instance->RDR & (uint8_t)0xFF); in SMARTCARD_RxISR()
2883 hsmartcard->pRxBuffPtr++; in SMARTCARD_RxISR()
2885 hsmartcard->RxXferCount--; in SMARTCARD_RxISR()
2886 if (hsmartcard->RxXferCount == 0U) in SMARTCARD_RxISR()
2888 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_RXNEIE); in SMARTCARD_RxISR()
2891 if (hsmartcard->gState == HAL_SMARTCARD_STATE_READY) in SMARTCARD_RxISR()
2894 CLEAR_BIT(hsmartcard->Instance->CR3, USART_CR3_EIE); in SMARTCARD_RxISR()
2898 CLEAR_BIT(hsmartcard->Instance->CR1, USART_CR1_PEIE); in SMARTCARD_RxISR()
2900 hsmartcard->RxState = HAL_SMARTCARD_STATE_READY; in SMARTCARD_RxISR()
2903 hsmartcard->RxISR = NULL; in SMARTCARD_RxISR()
2907 hsmartcard->RxCpltCallback(hsmartcard); in SMARTCARD_RxISR()
2910 HAL_SMARTCARD_RxCpltCallback(hsmartcard); in SMARTCARD_RxISR()
2917 __HAL_SMARTCARD_SEND_REQ(hsmartcard, SMARTCARD_RXDATA_FLUSH_REQUEST); in SMARTCARD_RxISR()