Lines Matching refs:hirda
226 void IRDA_InitCallbacksToDefault(IRDA_HandleTypeDef *hirda);
228 static void IRDA_SetConfig(IRDA_HandleTypeDef *hirda);
229 static HAL_StatusTypeDef IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda);
230 static HAL_StatusTypeDef IRDA_EndTransmit_IT(IRDA_HandleTypeDef *hirda);
231 static HAL_StatusTypeDef IRDA_Receive_IT(IRDA_HandleTypeDef *hirda);
242 static HAL_StatusTypeDef IRDA_WaitOnFlagUntilTimeout(IRDA_HandleTypeDef *hirda, uint32_t Flag, Flag…
243 static void IRDA_EndTxTransfer(IRDA_HandleTypeDef *hirda);
244 static void IRDA_EndRxTransfer(IRDA_HandleTypeDef *hirda);
293 HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda) in HAL_IRDA_Init() argument
296 if (hirda == NULL) in HAL_IRDA_Init()
302 assert_param(IS_IRDA_INSTANCE(hirda->Instance)); in HAL_IRDA_Init()
304 assert_param(IS_IRDA_POWERMODE(hirda->Init.IrDAMode)); in HAL_IRDA_Init()
306 if (hirda->gState == HAL_IRDA_STATE_RESET) in HAL_IRDA_Init()
309 hirda->Lock = HAL_UNLOCKED; in HAL_IRDA_Init()
312 IRDA_InitCallbacksToDefault(hirda); in HAL_IRDA_Init()
314 if (hirda->MspInitCallback == NULL) in HAL_IRDA_Init()
316 hirda->MspInitCallback = HAL_IRDA_MspInit; in HAL_IRDA_Init()
320 hirda->MspInitCallback(hirda); in HAL_IRDA_Init()
323 HAL_IRDA_MspInit(hirda); in HAL_IRDA_Init()
327 hirda->gState = HAL_IRDA_STATE_BUSY; in HAL_IRDA_Init()
330 __HAL_IRDA_DISABLE(hirda); in HAL_IRDA_Init()
333 IRDA_SetConfig(hirda); in HAL_IRDA_Init()
338 CLEAR_BIT(hirda->Instance->CR2, (USART_CR2_LINEN | USART_CR2_STOP | USART_CR2_CLKEN)); in HAL_IRDA_Init()
339 CLEAR_BIT(hirda->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL)); in HAL_IRDA_Init()
342 __HAL_IRDA_ENABLE(hirda); in HAL_IRDA_Init()
345 MODIFY_REG(hirda->Instance->GTPR, USART_GTPR_PSC, hirda->Init.Prescaler); in HAL_IRDA_Init()
348 MODIFY_REG(hirda->Instance->CR3, USART_CR3_IRLP, hirda->Init.IrDAMode); in HAL_IRDA_Init()
351 SET_BIT(hirda->Instance->CR3, USART_CR3_IREN); in HAL_IRDA_Init()
354 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_Init()
355 hirda->gState = HAL_IRDA_STATE_READY; in HAL_IRDA_Init()
356 hirda->RxState = HAL_IRDA_STATE_READY; in HAL_IRDA_Init()
367 HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda) in HAL_IRDA_DeInit() argument
370 if (hirda == NULL) in HAL_IRDA_DeInit()
376 assert_param(IS_IRDA_INSTANCE(hirda->Instance)); in HAL_IRDA_DeInit()
378 hirda->gState = HAL_IRDA_STATE_BUSY; in HAL_IRDA_DeInit()
381 __HAL_IRDA_DISABLE(hirda); in HAL_IRDA_DeInit()
385 if (hirda->MspDeInitCallback == NULL) in HAL_IRDA_DeInit()
387 hirda->MspDeInitCallback = HAL_IRDA_MspDeInit; in HAL_IRDA_DeInit()
390 hirda->MspDeInitCallback(hirda); in HAL_IRDA_DeInit()
392 HAL_IRDA_MspDeInit(hirda); in HAL_IRDA_DeInit()
395 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_DeInit()
397 hirda->gState = HAL_IRDA_STATE_RESET; in HAL_IRDA_DeInit()
398 hirda->RxState = HAL_IRDA_STATE_RESET; in HAL_IRDA_DeInit()
401 __HAL_UNLOCK(hirda); in HAL_IRDA_DeInit()
412 __weak void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda) in HAL_IRDA_MspInit() argument
415 UNUSED(hirda); in HAL_IRDA_MspInit()
428 __weak void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda) in HAL_IRDA_MspDeInit() argument
431 UNUSED(hirda); in HAL_IRDA_MspDeInit()
460 HAL_StatusTypeDef HAL_IRDA_RegisterCallback(IRDA_HandleTypeDef *hirda, HAL_IRDA_CallbackIDTypeDef C… in HAL_IRDA_RegisterCallback() argument
467 hirda->ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK; in HAL_IRDA_RegisterCallback()
472 if (hirda->gState == HAL_IRDA_STATE_READY) in HAL_IRDA_RegisterCallback()
477 hirda->TxHalfCpltCallback = pCallback; in HAL_IRDA_RegisterCallback()
481 hirda->TxCpltCallback = pCallback; in HAL_IRDA_RegisterCallback()
485 hirda->RxHalfCpltCallback = pCallback; in HAL_IRDA_RegisterCallback()
489 hirda->RxCpltCallback = pCallback; in HAL_IRDA_RegisterCallback()
493 hirda->ErrorCallback = pCallback; in HAL_IRDA_RegisterCallback()
497 hirda->AbortCpltCallback = pCallback; in HAL_IRDA_RegisterCallback()
501 hirda->AbortTransmitCpltCallback = pCallback; in HAL_IRDA_RegisterCallback()
505 hirda->AbortReceiveCpltCallback = pCallback; in HAL_IRDA_RegisterCallback()
509 hirda->MspInitCallback = pCallback; in HAL_IRDA_RegisterCallback()
513 hirda->MspDeInitCallback = pCallback; in HAL_IRDA_RegisterCallback()
518 hirda->ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK; in HAL_IRDA_RegisterCallback()
525 else if (hirda->gState == HAL_IRDA_STATE_RESET) in HAL_IRDA_RegisterCallback()
530 hirda->MspInitCallback = pCallback; in HAL_IRDA_RegisterCallback()
534 hirda->MspDeInitCallback = pCallback; in HAL_IRDA_RegisterCallback()
539 hirda->ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK; in HAL_IRDA_RegisterCallback()
549 hirda->ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK; in HAL_IRDA_RegisterCallback()
578 HAL_StatusTypeDef HAL_IRDA_UnRegisterCallback(IRDA_HandleTypeDef *hirda, HAL_IRDA_CallbackIDTypeDef… in HAL_IRDA_UnRegisterCallback() argument
582 if (HAL_IRDA_STATE_READY == hirda->gState) in HAL_IRDA_UnRegisterCallback()
587 …hirda->TxHalfCpltCallback = HAL_IRDA_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_IRDA_UnRegisterCallback()
591 …hirda->TxCpltCallback = HAL_IRDA_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_IRDA_UnRegisterCallback()
595 …hirda->RxHalfCpltCallback = HAL_IRDA_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_IRDA_UnRegisterCallback()
599 …hirda->RxCpltCallback = HAL_IRDA_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_IRDA_UnRegisterCallback()
603 …hirda->ErrorCallback = HAL_IRDA_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_IRDA_UnRegisterCallback()
607 …hirda->AbortCpltCallback = HAL_IRDA_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_IRDA_UnRegisterCallback()
611 …hirda->AbortTransmitCpltCallback = HAL_IRDA_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in HAL_IRDA_UnRegisterCallback()
615 …hirda->AbortReceiveCpltCallback = HAL_IRDA_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in HAL_IRDA_UnRegisterCallback()
619 …hirda->MspInitCallback = HAL_IRDA_MspInit; /* Legacy weak MspInitCallb… in HAL_IRDA_UnRegisterCallback()
623 …hirda->MspDeInitCallback = HAL_IRDA_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_IRDA_UnRegisterCallback()
628 hirda->ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK; in HAL_IRDA_UnRegisterCallback()
635 else if (HAL_IRDA_STATE_RESET == hirda->gState) in HAL_IRDA_UnRegisterCallback()
640 hirda->MspInitCallback = HAL_IRDA_MspInit; in HAL_IRDA_UnRegisterCallback()
644 hirda->MspDeInitCallback = HAL_IRDA_MspDeInit; in HAL_IRDA_UnRegisterCallback()
649 hirda->ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK; in HAL_IRDA_UnRegisterCallback()
659 hirda->ErrorCode |= HAL_IRDA_ERROR_INVALID_CALLBACK; in HAL_IRDA_UnRegisterCallback()
764 HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size,… in HAL_IRDA_Transmit() argument
770 if (hirda->gState == HAL_IRDA_STATE_READY) in HAL_IRDA_Transmit()
778 __HAL_LOCK(hirda); in HAL_IRDA_Transmit()
780 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_Transmit()
781 hirda->gState = HAL_IRDA_STATE_BUSY_TX; in HAL_IRDA_Transmit()
786 hirda->TxXferSize = Size; in HAL_IRDA_Transmit()
787 hirda->TxXferCount = Size; in HAL_IRDA_Transmit()
788 while (hirda->TxXferCount > 0U) in HAL_IRDA_Transmit()
790 hirda->TxXferCount--; in HAL_IRDA_Transmit()
791 if (hirda->Init.WordLength == IRDA_WORDLENGTH_9B) in HAL_IRDA_Transmit()
793 if (IRDA_WaitOnFlagUntilTimeout(hirda, IRDA_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_IRDA_Transmit()
798 hirda->Instance->DR = (*tmp & (uint16_t)0x01FF); in HAL_IRDA_Transmit()
799 if (hirda->Init.Parity == IRDA_PARITY_NONE) in HAL_IRDA_Transmit()
810 if (IRDA_WaitOnFlagUntilTimeout(hirda, IRDA_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_IRDA_Transmit()
814 hirda->Instance->DR = (*pData++ & (uint8_t)0xFF); in HAL_IRDA_Transmit()
818 if (IRDA_WaitOnFlagUntilTimeout(hirda, IRDA_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_IRDA_Transmit()
824 hirda->gState = HAL_IRDA_STATE_READY; in HAL_IRDA_Transmit()
827 __HAL_UNLOCK(hirda); in HAL_IRDA_Transmit()
849 HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32… in HAL_IRDA_Receive() argument
855 if (hirda->RxState == HAL_IRDA_STATE_READY) in HAL_IRDA_Receive()
863 __HAL_LOCK(hirda); in HAL_IRDA_Receive()
865 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_Receive()
866 hirda->RxState = HAL_IRDA_STATE_BUSY_RX; in HAL_IRDA_Receive()
871 hirda->RxXferSize = Size; in HAL_IRDA_Receive()
872 hirda->RxXferCount = Size; in HAL_IRDA_Receive()
875 while (hirda->RxXferCount > 0U) in HAL_IRDA_Receive()
877 hirda->RxXferCount--; in HAL_IRDA_Receive()
879 if (hirda->Init.WordLength == IRDA_WORDLENGTH_9B) in HAL_IRDA_Receive()
881 if (IRDA_WaitOnFlagUntilTimeout(hirda, IRDA_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_IRDA_Receive()
886 if (hirda->Init.Parity == IRDA_PARITY_NONE) in HAL_IRDA_Receive()
888 *tmp = (uint16_t)(hirda->Instance->DR & (uint16_t)0x01FF); in HAL_IRDA_Receive()
893 *tmp = (uint16_t)(hirda->Instance->DR & (uint16_t)0x00FF); in HAL_IRDA_Receive()
899 if (IRDA_WaitOnFlagUntilTimeout(hirda, IRDA_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_IRDA_Receive()
903 if (hirda->Init.Parity == IRDA_PARITY_NONE) in HAL_IRDA_Receive()
905 *pData++ = (uint8_t)(hirda->Instance->DR & (uint8_t)0x00FF); in HAL_IRDA_Receive()
909 *pData++ = (uint8_t)(hirda->Instance->DR & (uint8_t)0x007F); in HAL_IRDA_Receive()
915 hirda->RxState = HAL_IRDA_STATE_READY; in HAL_IRDA_Receive()
918 __HAL_UNLOCK(hirda); in HAL_IRDA_Receive()
939 HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Si… in HAL_IRDA_Transmit_IT() argument
942 if (hirda->gState == HAL_IRDA_STATE_READY) in HAL_IRDA_Transmit_IT()
950 __HAL_LOCK(hirda); in HAL_IRDA_Transmit_IT()
952 hirda->pTxBuffPtr = pData; in HAL_IRDA_Transmit_IT()
953 hirda->TxXferSize = Size; in HAL_IRDA_Transmit_IT()
954 hirda->TxXferCount = Size; in HAL_IRDA_Transmit_IT()
956 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_Transmit_IT()
957 hirda->gState = HAL_IRDA_STATE_BUSY_TX; in HAL_IRDA_Transmit_IT()
960 __HAL_UNLOCK(hirda); in HAL_IRDA_Transmit_IT()
963 SET_BIT(hirda->Instance->CR1, USART_CR1_TXEIE); in HAL_IRDA_Transmit_IT()
984 HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size) in HAL_IRDA_Receive_IT() argument
987 if (hirda->RxState == HAL_IRDA_STATE_READY) in HAL_IRDA_Receive_IT()
995 __HAL_LOCK(hirda); in HAL_IRDA_Receive_IT()
997 hirda->pRxBuffPtr = pData; in HAL_IRDA_Receive_IT()
998 hirda->RxXferSize = Size; in HAL_IRDA_Receive_IT()
999 hirda->RxXferCount = Size; in HAL_IRDA_Receive_IT()
1001 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_Receive_IT()
1002 hirda->RxState = HAL_IRDA_STATE_BUSY_RX; in HAL_IRDA_Receive_IT()
1005 __HAL_UNLOCK(hirda); in HAL_IRDA_Receive_IT()
1007 if (hirda->Init.Parity != IRDA_PARITY_NONE) in HAL_IRDA_Receive_IT()
1010 SET_BIT(hirda->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_IRDA_Receive_IT()
1015 SET_BIT(hirda->Instance->CR1, USART_CR1_RXNEIE); in HAL_IRDA_Receive_IT()
1019 SET_BIT(hirda->Instance->CR3, USART_CR3_EIE); in HAL_IRDA_Receive_IT()
1040 HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t S… in HAL_IRDA_Transmit_DMA() argument
1045 if (hirda->gState == HAL_IRDA_STATE_READY) in HAL_IRDA_Transmit_DMA()
1053 __HAL_LOCK(hirda); in HAL_IRDA_Transmit_DMA()
1055 hirda->pTxBuffPtr = pData; in HAL_IRDA_Transmit_DMA()
1056 hirda->TxXferSize = Size; in HAL_IRDA_Transmit_DMA()
1057 hirda->TxXferCount = Size; in HAL_IRDA_Transmit_DMA()
1059 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_Transmit_DMA()
1060 hirda->gState = HAL_IRDA_STATE_BUSY_TX; in HAL_IRDA_Transmit_DMA()
1063 hirda->hdmatx->XferCpltCallback = IRDA_DMATransmitCplt; in HAL_IRDA_Transmit_DMA()
1066 hirda->hdmatx->XferHalfCpltCallback = IRDA_DMATransmitHalfCplt; in HAL_IRDA_Transmit_DMA()
1069 hirda->hdmatx->XferErrorCallback = IRDA_DMAError; in HAL_IRDA_Transmit_DMA()
1072 hirda->hdmatx->XferAbortCallback = NULL; in HAL_IRDA_Transmit_DMA()
1076 HAL_DMA_Start_IT(hirda->hdmatx, *(const uint32_t *)tmp, (uint32_t)&hirda->Instance->DR, Size); in HAL_IRDA_Transmit_DMA()
1079 __HAL_IRDA_CLEAR_FLAG(hirda, IRDA_FLAG_TC); in HAL_IRDA_Transmit_DMA()
1082 __HAL_UNLOCK(hirda); in HAL_IRDA_Transmit_DMA()
1086 SET_BIT(hirda->Instance->CR3, USART_CR3_DMAT); in HAL_IRDA_Transmit_DMA()
1108 HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size) in HAL_IRDA_Receive_DMA() argument
1113 if (hirda->RxState == HAL_IRDA_STATE_READY) in HAL_IRDA_Receive_DMA()
1121 __HAL_LOCK(hirda); in HAL_IRDA_Receive_DMA()
1123 hirda->pRxBuffPtr = pData; in HAL_IRDA_Receive_DMA()
1124 hirda->RxXferSize = Size; in HAL_IRDA_Receive_DMA()
1126 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_Receive_DMA()
1127 hirda->RxState = HAL_IRDA_STATE_BUSY_RX; in HAL_IRDA_Receive_DMA()
1130 hirda->hdmarx->XferCpltCallback = IRDA_DMAReceiveCplt; in HAL_IRDA_Receive_DMA()
1133 hirda->hdmarx->XferHalfCpltCallback = IRDA_DMAReceiveHalfCplt; in HAL_IRDA_Receive_DMA()
1136 hirda->hdmarx->XferErrorCallback = IRDA_DMAError; in HAL_IRDA_Receive_DMA()
1139 hirda->hdmarx->XferAbortCallback = NULL; in HAL_IRDA_Receive_DMA()
1143 HAL_DMA_Start_IT(hirda->hdmarx, (uint32_t)&hirda->Instance->DR, *(uint32_t *)tmp, Size); in HAL_IRDA_Receive_DMA()
1146 __HAL_IRDA_CLEAR_OREFLAG(hirda); in HAL_IRDA_Receive_DMA()
1149 __HAL_UNLOCK(hirda); in HAL_IRDA_Receive_DMA()
1151 if (hirda->Init.Parity != IRDA_PARITY_NONE) in HAL_IRDA_Receive_DMA()
1154 SET_BIT(hirda->Instance->CR1, USART_CR1_PEIE); in HAL_IRDA_Receive_DMA()
1158 SET_BIT(hirda->Instance->CR3, USART_CR3_EIE); in HAL_IRDA_Receive_DMA()
1162 SET_BIT(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_Receive_DMA()
1178 HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda) in HAL_IRDA_DMAPause() argument
1183 __HAL_LOCK(hirda); in HAL_IRDA_DMAPause()
1185 dmarequest = HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAT); in HAL_IRDA_DMAPause()
1186 if ((hirda->gState == HAL_IRDA_STATE_BUSY_TX) && dmarequest) in HAL_IRDA_DMAPause()
1189 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAT); in HAL_IRDA_DMAPause()
1192 dmarequest = HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_DMAPause()
1193 if ((hirda->RxState == HAL_IRDA_STATE_BUSY_RX) && dmarequest) in HAL_IRDA_DMAPause()
1196 CLEAR_BIT(hirda->Instance->CR1, USART_CR1_PEIE); in HAL_IRDA_DMAPause()
1197 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_EIE); in HAL_IRDA_DMAPause()
1200 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_DMAPause()
1204 __HAL_UNLOCK(hirda); in HAL_IRDA_DMAPause()
1215 HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda) in HAL_IRDA_DMAResume() argument
1218 __HAL_LOCK(hirda); in HAL_IRDA_DMAResume()
1220 if (hirda->gState == HAL_IRDA_STATE_BUSY_TX) in HAL_IRDA_DMAResume()
1223 SET_BIT(hirda->Instance->CR3, USART_CR3_DMAT); in HAL_IRDA_DMAResume()
1226 if (hirda->RxState == HAL_IRDA_STATE_BUSY_RX) in HAL_IRDA_DMAResume()
1229 __HAL_IRDA_CLEAR_OREFLAG(hirda); in HAL_IRDA_DMAResume()
1232 if (hirda->Init.Parity != IRDA_PARITY_NONE) in HAL_IRDA_DMAResume()
1234 SET_BIT(hirda->Instance->CR1, USART_CR1_PEIE); in HAL_IRDA_DMAResume()
1236 SET_BIT(hirda->Instance->CR3, USART_CR3_EIE); in HAL_IRDA_DMAResume()
1239 SET_BIT(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_DMAResume()
1243 __HAL_UNLOCK(hirda); in HAL_IRDA_DMAResume()
1254 HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda) in HAL_IRDA_DMAStop() argument
1264 dmarequest = HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAT); in HAL_IRDA_DMAStop()
1265 if ((hirda->gState == HAL_IRDA_STATE_BUSY_TX) && dmarequest) in HAL_IRDA_DMAStop()
1267 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAT); in HAL_IRDA_DMAStop()
1270 if (hirda->hdmatx != NULL) in HAL_IRDA_DMAStop()
1272 HAL_DMA_Abort(hirda->hdmatx); in HAL_IRDA_DMAStop()
1274 IRDA_EndTxTransfer(hirda); in HAL_IRDA_DMAStop()
1278 dmarequest = HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_DMAStop()
1279 if ((hirda->RxState == HAL_IRDA_STATE_BUSY_RX) && dmarequest) in HAL_IRDA_DMAStop()
1281 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_DMAStop()
1284 if (hirda->hdmarx != NULL) in HAL_IRDA_DMAStop()
1286 HAL_DMA_Abort(hirda->hdmarx); in HAL_IRDA_DMAStop()
1288 IRDA_EndRxTransfer(hirda); in HAL_IRDA_DMAStop()
1306 HAL_StatusTypeDef HAL_IRDA_Abort(IRDA_HandleTypeDef *hirda) in HAL_IRDA_Abort() argument
1309 …CLEAR_BIT(hirda->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_T… in HAL_IRDA_Abort()
1310 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_EIE); in HAL_IRDA_Abort()
1313 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAT)) in HAL_IRDA_Abort()
1315 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAT); in HAL_IRDA_Abort()
1318 if (hirda->hdmatx != NULL) in HAL_IRDA_Abort()
1322 hirda->hdmatx->XferAbortCallback = NULL; in HAL_IRDA_Abort()
1324 HAL_DMA_Abort(hirda->hdmatx); in HAL_IRDA_Abort()
1329 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAR)) in HAL_IRDA_Abort()
1331 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_Abort()
1334 if (hirda->hdmarx != NULL) in HAL_IRDA_Abort()
1338 hirda->hdmarx->XferAbortCallback = NULL; in HAL_IRDA_Abort()
1340 HAL_DMA_Abort(hirda->hdmarx); in HAL_IRDA_Abort()
1345 hirda->TxXferCount = 0x00U; in HAL_IRDA_Abort()
1346 hirda->RxXferCount = 0x00U; in HAL_IRDA_Abort()
1349 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_Abort()
1352 hirda->RxState = HAL_IRDA_STATE_READY; in HAL_IRDA_Abort()
1353 hirda->gState = HAL_IRDA_STATE_READY; in HAL_IRDA_Abort()
1370 HAL_StatusTypeDef HAL_IRDA_AbortTransmit(IRDA_HandleTypeDef *hirda) in HAL_IRDA_AbortTransmit() argument
1373 CLEAR_BIT(hirda->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_IRDA_AbortTransmit()
1376 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAT)) in HAL_IRDA_AbortTransmit()
1378 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAT); in HAL_IRDA_AbortTransmit()
1381 if (hirda->hdmatx != NULL) in HAL_IRDA_AbortTransmit()
1385 hirda->hdmatx->XferAbortCallback = NULL; in HAL_IRDA_AbortTransmit()
1387 HAL_DMA_Abort(hirda->hdmatx); in HAL_IRDA_AbortTransmit()
1392 hirda->TxXferCount = 0x00U; in HAL_IRDA_AbortTransmit()
1395 hirda->gState = HAL_IRDA_STATE_READY; in HAL_IRDA_AbortTransmit()
1412 HAL_StatusTypeDef HAL_IRDA_AbortReceive(IRDA_HandleTypeDef *hirda) in HAL_IRDA_AbortReceive() argument
1415 CLEAR_BIT(hirda->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_IRDA_AbortReceive()
1416 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_EIE); in HAL_IRDA_AbortReceive()
1419 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAR)) in HAL_IRDA_AbortReceive()
1421 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_AbortReceive()
1424 if (hirda->hdmarx != NULL) in HAL_IRDA_AbortReceive()
1428 hirda->hdmarx->XferAbortCallback = NULL; in HAL_IRDA_AbortReceive()
1430 HAL_DMA_Abort(hirda->hdmarx); in HAL_IRDA_AbortReceive()
1435 hirda->RxXferCount = 0x00U; in HAL_IRDA_AbortReceive()
1438 hirda->RxState = HAL_IRDA_STATE_READY; in HAL_IRDA_AbortReceive()
1457 HAL_StatusTypeDef HAL_IRDA_Abort_IT(IRDA_HandleTypeDef *hirda) in HAL_IRDA_Abort_IT() argument
1462 …CLEAR_BIT(hirda->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_T… in HAL_IRDA_Abort_IT()
1463 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_EIE); in HAL_IRDA_Abort_IT()
1468 if (hirda->hdmatx != NULL) in HAL_IRDA_Abort_IT()
1472 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAT)) in HAL_IRDA_Abort_IT()
1474 hirda->hdmatx->XferAbortCallback = IRDA_DMATxAbortCallback; in HAL_IRDA_Abort_IT()
1478 hirda->hdmatx->XferAbortCallback = NULL; in HAL_IRDA_Abort_IT()
1482 if (hirda->hdmarx != NULL) in HAL_IRDA_Abort_IT()
1486 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAR)) in HAL_IRDA_Abort_IT()
1488 hirda->hdmarx->XferAbortCallback = IRDA_DMARxAbortCallback; in HAL_IRDA_Abort_IT()
1492 hirda->hdmarx->XferAbortCallback = NULL; in HAL_IRDA_Abort_IT()
1497 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAT)) in HAL_IRDA_Abort_IT()
1500 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAT); in HAL_IRDA_Abort_IT()
1503 if (hirda->hdmatx != NULL) in HAL_IRDA_Abort_IT()
1509 if (HAL_DMA_Abort_IT(hirda->hdmatx) != HAL_OK) in HAL_IRDA_Abort_IT()
1511 hirda->hdmatx->XferAbortCallback = NULL; in HAL_IRDA_Abort_IT()
1521 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAR)) in HAL_IRDA_Abort_IT()
1523 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_Abort_IT()
1526 if (hirda->hdmarx != NULL) in HAL_IRDA_Abort_IT()
1532 if (HAL_DMA_Abort_IT(hirda->hdmarx) != HAL_OK) in HAL_IRDA_Abort_IT()
1534 hirda->hdmarx->XferAbortCallback = NULL; in HAL_IRDA_Abort_IT()
1548 hirda->TxXferCount = 0x00U; in HAL_IRDA_Abort_IT()
1549 hirda->RxXferCount = 0x00U; in HAL_IRDA_Abort_IT()
1552 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_Abort_IT()
1555 hirda->gState = HAL_IRDA_STATE_READY; in HAL_IRDA_Abort_IT()
1556 hirda->RxState = HAL_IRDA_STATE_READY; in HAL_IRDA_Abort_IT()
1561 hirda->AbortCpltCallback(hirda); in HAL_IRDA_Abort_IT()
1564 HAL_IRDA_AbortCpltCallback(hirda); in HAL_IRDA_Abort_IT()
1585 HAL_StatusTypeDef HAL_IRDA_AbortTransmit_IT(IRDA_HandleTypeDef *hirda) in HAL_IRDA_AbortTransmit_IT() argument
1588 CLEAR_BIT(hirda->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_IRDA_AbortTransmit_IT()
1591 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAT)) in HAL_IRDA_AbortTransmit_IT()
1593 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAT); in HAL_IRDA_AbortTransmit_IT()
1596 if (hirda->hdmatx != NULL) in HAL_IRDA_AbortTransmit_IT()
1600 hirda->hdmatx->XferAbortCallback = IRDA_DMATxOnlyAbortCallback; in HAL_IRDA_AbortTransmit_IT()
1603 if (HAL_DMA_Abort_IT(hirda->hdmatx) != HAL_OK) in HAL_IRDA_AbortTransmit_IT()
1606 hirda->hdmatx->XferAbortCallback(hirda->hdmatx); in HAL_IRDA_AbortTransmit_IT()
1612 hirda->TxXferCount = 0x00U; in HAL_IRDA_AbortTransmit_IT()
1615 hirda->gState = HAL_IRDA_STATE_READY; in HAL_IRDA_AbortTransmit_IT()
1620 hirda->AbortTransmitCpltCallback(hirda); in HAL_IRDA_AbortTransmit_IT()
1623 HAL_IRDA_AbortTransmitCpltCallback(hirda); in HAL_IRDA_AbortTransmit_IT()
1630 hirda->TxXferCount = 0x00U; in HAL_IRDA_AbortTransmit_IT()
1633 hirda->gState = HAL_IRDA_STATE_READY; in HAL_IRDA_AbortTransmit_IT()
1638 hirda->AbortTransmitCpltCallback(hirda); in HAL_IRDA_AbortTransmit_IT()
1641 HAL_IRDA_AbortTransmitCpltCallback(hirda); in HAL_IRDA_AbortTransmit_IT()
1662 HAL_StatusTypeDef HAL_IRDA_AbortReceive_IT(IRDA_HandleTypeDef *hirda) in HAL_IRDA_AbortReceive_IT() argument
1665 CLEAR_BIT(hirda->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_IRDA_AbortReceive_IT()
1666 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_EIE); in HAL_IRDA_AbortReceive_IT()
1669 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAR)) in HAL_IRDA_AbortReceive_IT()
1671 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_AbortReceive_IT()
1674 if (hirda->hdmarx != NULL) in HAL_IRDA_AbortReceive_IT()
1678 hirda->hdmarx->XferAbortCallback = IRDA_DMARxOnlyAbortCallback; in HAL_IRDA_AbortReceive_IT()
1681 if (HAL_DMA_Abort_IT(hirda->hdmarx) != HAL_OK) in HAL_IRDA_AbortReceive_IT()
1684 hirda->hdmarx->XferAbortCallback(hirda->hdmarx); in HAL_IRDA_AbortReceive_IT()
1690 hirda->RxXferCount = 0x00U; in HAL_IRDA_AbortReceive_IT()
1693 hirda->RxState = HAL_IRDA_STATE_READY; in HAL_IRDA_AbortReceive_IT()
1698 hirda->AbortReceiveCpltCallback(hirda); in HAL_IRDA_AbortReceive_IT()
1701 HAL_IRDA_AbortReceiveCpltCallback(hirda); in HAL_IRDA_AbortReceive_IT()
1708 hirda->RxXferCount = 0x00U; in HAL_IRDA_AbortReceive_IT()
1711 hirda->RxState = HAL_IRDA_STATE_READY; in HAL_IRDA_AbortReceive_IT()
1716 hirda->AbortReceiveCpltCallback(hirda); in HAL_IRDA_AbortReceive_IT()
1719 HAL_IRDA_AbortReceiveCpltCallback(hirda); in HAL_IRDA_AbortReceive_IT()
1732 void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda) in HAL_IRDA_IRQHandler() argument
1734 uint32_t isrflags = READ_REG(hirda->Instance->SR); in HAL_IRDA_IRQHandler()
1735 uint32_t cr1its = READ_REG(hirda->Instance->CR1); in HAL_IRDA_IRQHandler()
1736 uint32_t cr3its = READ_REG(hirda->Instance->CR3); in HAL_IRDA_IRQHandler()
1747 IRDA_Receive_IT(hirda); in HAL_IRDA_IRQHandler()
1758 hirda->ErrorCode |= HAL_IRDA_ERROR_PE; in HAL_IRDA_IRQHandler()
1764 hirda->ErrorCode |= HAL_IRDA_ERROR_NE; in HAL_IRDA_IRQHandler()
1770 hirda->ErrorCode |= HAL_IRDA_ERROR_FE; in HAL_IRDA_IRQHandler()
1776 hirda->ErrorCode |= HAL_IRDA_ERROR_ORE; in HAL_IRDA_IRQHandler()
1779 if (hirda->ErrorCode != HAL_IRDA_ERROR_NONE) in HAL_IRDA_IRQHandler()
1784 IRDA_Receive_IT(hirda); in HAL_IRDA_IRQHandler()
1789 dmarequest = HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_IRQHandler()
1790 if (((hirda->ErrorCode & HAL_IRDA_ERROR_ORE) != RESET) || dmarequest) in HAL_IRDA_IRQHandler()
1795 IRDA_EndRxTransfer(hirda); in HAL_IRDA_IRQHandler()
1798 if (HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAR)) in HAL_IRDA_IRQHandler()
1800 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAR); in HAL_IRDA_IRQHandler()
1803 if (hirda->hdmarx != NULL) in HAL_IRDA_IRQHandler()
1807 hirda->hdmarx->XferAbortCallback = IRDA_DMAAbortOnError; in HAL_IRDA_IRQHandler()
1810 if (HAL_DMA_Abort_IT(hirda->hdmarx) != HAL_OK) in HAL_IRDA_IRQHandler()
1813 hirda->hdmarx->XferAbortCallback(hirda->hdmarx); in HAL_IRDA_IRQHandler()
1820 hirda->ErrorCallback(hirda); in HAL_IRDA_IRQHandler()
1823 HAL_IRDA_ErrorCallback(hirda); in HAL_IRDA_IRQHandler()
1831 hirda->ErrorCallback(hirda); in HAL_IRDA_IRQHandler()
1834 HAL_IRDA_ErrorCallback(hirda); in HAL_IRDA_IRQHandler()
1844 hirda->ErrorCallback(hirda); in HAL_IRDA_IRQHandler()
1847 HAL_IRDA_ErrorCallback(hirda); in HAL_IRDA_IRQHandler()
1850 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in HAL_IRDA_IRQHandler()
1859 IRDA_Transmit_IT(hirda); in HAL_IRDA_IRQHandler()
1866 IRDA_EndTransmit_IT(hirda); in HAL_IRDA_IRQHandler()
1877 __weak void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda) in HAL_IRDA_TxCpltCallback() argument
1880 UNUSED(hirda); in HAL_IRDA_TxCpltCallback()
1893 __weak void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda) in HAL_IRDA_TxHalfCpltCallback() argument
1896 UNUSED(hirda); in HAL_IRDA_TxHalfCpltCallback()
1909 __weak void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda) in HAL_IRDA_RxCpltCallback() argument
1912 UNUSED(hirda); in HAL_IRDA_RxCpltCallback()
1925 __weak void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda) in HAL_IRDA_RxHalfCpltCallback() argument
1928 UNUSED(hirda); in HAL_IRDA_RxHalfCpltCallback()
1941 __weak void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda) in HAL_IRDA_ErrorCallback() argument
1944 UNUSED(hirda); in HAL_IRDA_ErrorCallback()
1957 __weak void HAL_IRDA_AbortCpltCallback(IRDA_HandleTypeDef *hirda) in HAL_IRDA_AbortCpltCallback() argument
1960 UNUSED(hirda); in HAL_IRDA_AbortCpltCallback()
1973 __weak void HAL_IRDA_AbortTransmitCpltCallback(IRDA_HandleTypeDef *hirda) in HAL_IRDA_AbortTransmitCpltCallback() argument
1976 UNUSED(hirda); in HAL_IRDA_AbortTransmitCpltCallback()
1989 __weak void HAL_IRDA_AbortReceiveCpltCallback(IRDA_HandleTypeDef *hirda) in HAL_IRDA_AbortReceiveCpltCallback() argument
1992 UNUSED(hirda); in HAL_IRDA_AbortReceiveCpltCallback()
2026 HAL_IRDA_StateTypeDef HAL_IRDA_GetState(const IRDA_HandleTypeDef *hirda) in HAL_IRDA_GetState() argument
2029 temp1 = hirda->gState; in HAL_IRDA_GetState()
2030 temp2 = hirda->RxState; in HAL_IRDA_GetState()
2041 uint32_t HAL_IRDA_GetError(const IRDA_HandleTypeDef *hirda) in HAL_IRDA_GetError() argument
2043 return hirda->ErrorCode; in HAL_IRDA_GetError()
2064 void IRDA_InitCallbacksToDefault(IRDA_HandleTypeDef *hirda) in IRDA_InitCallbacksToDefault() argument
2067 …hirda->TxHalfCpltCallback = HAL_IRDA_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in IRDA_InitCallbacksToDefault()
2068 …hirda->TxCpltCallback = HAL_IRDA_TxCpltCallback; /* Legacy weak TxCpltCallba… in IRDA_InitCallbacksToDefault()
2069 …hirda->RxHalfCpltCallback = HAL_IRDA_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in IRDA_InitCallbacksToDefault()
2070 …hirda->RxCpltCallback = HAL_IRDA_RxCpltCallback; /* Legacy weak RxCpltCallba… in IRDA_InitCallbacksToDefault()
2071 …hirda->ErrorCallback = HAL_IRDA_ErrorCallback; /* Legacy weak ErrorCallbac… in IRDA_InitCallbacksToDefault()
2072 …hirda->AbortCpltCallback = HAL_IRDA_AbortCpltCallback; /* Legacy weak AbortCpltCal… in IRDA_InitCallbacksToDefault()
2073 …hirda->AbortTransmitCpltCallback = HAL_IRDA_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in IRDA_InitCallbacksToDefault()
2074 …hirda->AbortReceiveCpltCallback = HAL_IRDA_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in IRDA_InitCallbacksToDefault()
2087 IRDA_HandleTypeDef *hirda = (IRDA_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in IRDA_DMATransmitCplt() local
2091 hirda->TxXferCount = 0U; in IRDA_DMATransmitCplt()
2095 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAT); in IRDA_DMATransmitCplt()
2098 SET_BIT(hirda->Instance->CR1, USART_CR1_TCIE); in IRDA_DMATransmitCplt()
2105 hirda->TxCpltCallback(hirda); in IRDA_DMATransmitCplt()
2108 HAL_IRDA_TxCpltCallback(hirda); in IRDA_DMATransmitCplt()
2121 IRDA_HandleTypeDef *hirda = (IRDA_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in IRDA_DMATransmitHalfCplt() local
2125 hirda->TxHalfCpltCallback(hirda); in IRDA_DMATransmitHalfCplt()
2128 HAL_IRDA_TxHalfCpltCallback(hirda); in IRDA_DMATransmitHalfCplt()
2140 IRDA_HandleTypeDef *hirda = (IRDA_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in IRDA_DMAReceiveCplt() local
2145 hirda->RxXferCount = 0U; in IRDA_DMAReceiveCplt()
2148 CLEAR_BIT(hirda->Instance->CR1, USART_CR1_PEIE); in IRDA_DMAReceiveCplt()
2149 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_EIE); in IRDA_DMAReceiveCplt()
2153 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_DMAR); in IRDA_DMAReceiveCplt()
2156 hirda->RxState = HAL_IRDA_STATE_READY; in IRDA_DMAReceiveCplt()
2161 hirda->RxCpltCallback(hirda); in IRDA_DMAReceiveCplt()
2164 HAL_IRDA_RxCpltCallback(hirda); in IRDA_DMAReceiveCplt()
2176 IRDA_HandleTypeDef *hirda = (IRDA_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in IRDA_DMAReceiveHalfCplt() local
2180 hirda->RxHalfCpltCallback(hirda); in IRDA_DMAReceiveHalfCplt()
2183 HAL_IRDA_RxHalfCpltCallback(hirda); in IRDA_DMAReceiveHalfCplt()
2196 IRDA_HandleTypeDef *hirda = (IRDA_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in IRDA_DMAError() local
2199 dmarequest = HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAT); in IRDA_DMAError()
2200 if ((hirda->gState == HAL_IRDA_STATE_BUSY_TX) && dmarequest) in IRDA_DMAError()
2202 hirda->TxXferCount = 0U; in IRDA_DMAError()
2203 IRDA_EndTxTransfer(hirda); in IRDA_DMAError()
2207 dmarequest = HAL_IS_BIT_SET(hirda->Instance->CR3, USART_CR3_DMAR); in IRDA_DMAError()
2208 if ((hirda->RxState == HAL_IRDA_STATE_BUSY_RX) && dmarequest) in IRDA_DMAError()
2210 hirda->RxXferCount = 0U; in IRDA_DMAError()
2211 IRDA_EndRxTransfer(hirda); in IRDA_DMAError()
2214 hirda->ErrorCode |= HAL_IRDA_ERROR_DMA; in IRDA_DMAError()
2218 hirda->ErrorCallback(hirda); in IRDA_DMAError()
2221 HAL_IRDA_ErrorCallback(hirda); in IRDA_DMAError()
2236 static HAL_StatusTypeDef IRDA_WaitOnFlagUntilTimeout(IRDA_HandleTypeDef *hirda, uint32_t Flag, Flag… in IRDA_WaitOnFlagUntilTimeout() argument
2239 while ((__HAL_IRDA_GET_FLAG(hirda, Flag) ? SET : RESET) == Status) in IRDA_WaitOnFlagUntilTimeout()
2247 CLEAR_BIT(hirda->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); in IRDA_WaitOnFlagUntilTimeout()
2248 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_EIE); in IRDA_WaitOnFlagUntilTimeout()
2250 hirda->gState = HAL_IRDA_STATE_READY; in IRDA_WaitOnFlagUntilTimeout()
2251 hirda->RxState = HAL_IRDA_STATE_READY; in IRDA_WaitOnFlagUntilTimeout()
2254 __HAL_UNLOCK(hirda); in IRDA_WaitOnFlagUntilTimeout()
2268 static void IRDA_EndTxTransfer(IRDA_HandleTypeDef *hirda) in IRDA_EndTxTransfer() argument
2271 CLEAR_BIT(hirda->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in IRDA_EndTxTransfer()
2274 hirda->gState = HAL_IRDA_STATE_READY; in IRDA_EndTxTransfer()
2282 static void IRDA_EndRxTransfer(IRDA_HandleTypeDef *hirda) in IRDA_EndRxTransfer() argument
2285 CLEAR_BIT(hirda->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in IRDA_EndRxTransfer()
2286 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_EIE); in IRDA_EndRxTransfer()
2289 hirda->RxState = HAL_IRDA_STATE_READY; in IRDA_EndRxTransfer()
2300 IRDA_HandleTypeDef *hirda = (IRDA_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in IRDA_DMAAbortOnError() local
2301 hirda->RxXferCount = 0x00U; in IRDA_DMAAbortOnError()
2302 hirda->TxXferCount = 0x00U; in IRDA_DMAAbortOnError()
2306 hirda->ErrorCallback(hirda); in IRDA_DMAAbortOnError()
2309 HAL_IRDA_ErrorCallback(hirda); in IRDA_DMAAbortOnError()
2323 IRDA_HandleTypeDef *hirda = (IRDA_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in IRDA_DMATxAbortCallback() local
2325 hirda->hdmatx->XferAbortCallback = NULL; in IRDA_DMATxAbortCallback()
2328 if (hirda->hdmarx != NULL) in IRDA_DMATxAbortCallback()
2330 if (hirda->hdmarx->XferAbortCallback != NULL) in IRDA_DMATxAbortCallback()
2337 hirda->TxXferCount = 0x00U; in IRDA_DMATxAbortCallback()
2338 hirda->RxXferCount = 0x00U; in IRDA_DMATxAbortCallback()
2341 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in IRDA_DMATxAbortCallback()
2344 hirda->gState = HAL_IRDA_STATE_READY; in IRDA_DMATxAbortCallback()
2345 hirda->RxState = HAL_IRDA_STATE_READY; in IRDA_DMATxAbortCallback()
2350 hirda->AbortCpltCallback(hirda); in IRDA_DMATxAbortCallback()
2353 HAL_IRDA_AbortCpltCallback(hirda); in IRDA_DMATxAbortCallback()
2367 IRDA_HandleTypeDef *hirda = (IRDA_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in IRDA_DMARxAbortCallback() local
2369 hirda->hdmarx->XferAbortCallback = NULL; in IRDA_DMARxAbortCallback()
2372 if (hirda->hdmatx != NULL) in IRDA_DMARxAbortCallback()
2374 if (hirda->hdmatx->XferAbortCallback != NULL) in IRDA_DMARxAbortCallback()
2381 hirda->TxXferCount = 0x00U; in IRDA_DMARxAbortCallback()
2382 hirda->RxXferCount = 0x00U; in IRDA_DMARxAbortCallback()
2385 hirda->ErrorCode = HAL_IRDA_ERROR_NONE; in IRDA_DMARxAbortCallback()
2388 hirda->gState = HAL_IRDA_STATE_READY; in IRDA_DMARxAbortCallback()
2389 hirda->RxState = HAL_IRDA_STATE_READY; in IRDA_DMARxAbortCallback()
2394 hirda->AbortCpltCallback(hirda); in IRDA_DMARxAbortCallback()
2397 HAL_IRDA_AbortCpltCallback(hirda); in IRDA_DMARxAbortCallback()
2411 IRDA_HandleTypeDef *hirda = (IRDA_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in IRDA_DMATxOnlyAbortCallback() local
2413 hirda->TxXferCount = 0x00U; in IRDA_DMATxOnlyAbortCallback()
2416 hirda->gState = HAL_IRDA_STATE_READY; in IRDA_DMATxOnlyAbortCallback()
2421 hirda->AbortTransmitCpltCallback(hirda); in IRDA_DMATxOnlyAbortCallback()
2424 HAL_IRDA_AbortTransmitCpltCallback(hirda); in IRDA_DMATxOnlyAbortCallback()
2438 IRDA_HandleTypeDef *hirda = (IRDA_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in IRDA_DMARxOnlyAbortCallback() local
2440 hirda->RxXferCount = 0x00U; in IRDA_DMARxOnlyAbortCallback()
2443 hirda->RxState = HAL_IRDA_STATE_READY; in IRDA_DMARxOnlyAbortCallback()
2448 hirda->AbortReceiveCpltCallback(hirda); in IRDA_DMARxOnlyAbortCallback()
2451 HAL_IRDA_AbortReceiveCpltCallback(hirda); in IRDA_DMARxOnlyAbortCallback()
2461 static HAL_StatusTypeDef IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda) in IRDA_Transmit_IT() argument
2466 if (hirda->gState == HAL_IRDA_STATE_BUSY_TX) in IRDA_Transmit_IT()
2468 if (hirda->Init.WordLength == IRDA_WORDLENGTH_9B) in IRDA_Transmit_IT()
2470 tmp = (const uint16_t *) hirda->pTxBuffPtr; in IRDA_Transmit_IT()
2471 hirda->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); in IRDA_Transmit_IT()
2472 if (hirda->Init.Parity == IRDA_PARITY_NONE) in IRDA_Transmit_IT()
2474 hirda->pTxBuffPtr += 2U; in IRDA_Transmit_IT()
2478 hirda->pTxBuffPtr += 1U; in IRDA_Transmit_IT()
2483 hirda->Instance->DR = (uint8_t)(*hirda->pTxBuffPtr++ & (uint8_t)0x00FF); in IRDA_Transmit_IT()
2486 if (--hirda->TxXferCount == 0U) in IRDA_Transmit_IT()
2489 CLEAR_BIT(hirda->Instance->CR1, USART_CR1_TXEIE); in IRDA_Transmit_IT()
2492 SET_BIT(hirda->Instance->CR1, USART_CR1_TCIE); in IRDA_Transmit_IT()
2509 static HAL_StatusTypeDef IRDA_EndTransmit_IT(IRDA_HandleTypeDef *hirda) in IRDA_EndTransmit_IT() argument
2512 CLEAR_BIT(hirda->Instance->CR1, USART_CR1_TCIE); in IRDA_EndTransmit_IT()
2515 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_EIE); in IRDA_EndTransmit_IT()
2518 hirda->gState = HAL_IRDA_STATE_READY; in IRDA_EndTransmit_IT()
2522 hirda->TxCpltCallback(hirda); in IRDA_EndTransmit_IT()
2525 HAL_IRDA_TxCpltCallback(hirda); in IRDA_EndTransmit_IT()
2537 static HAL_StatusTypeDef IRDA_Receive_IT(IRDA_HandleTypeDef *hirda) in IRDA_Receive_IT() argument
2543 if (hirda->RxState == HAL_IRDA_STATE_BUSY_RX) in IRDA_Receive_IT()
2545 uhdata = (uint16_t) READ_REG(hirda->Instance->DR); in IRDA_Receive_IT()
2546 if (hirda->Init.WordLength == IRDA_WORDLENGTH_9B) in IRDA_Receive_IT()
2548 tmp = (uint16_t *) hirda->pRxBuffPtr; in IRDA_Receive_IT()
2549 if (hirda->Init.Parity == IRDA_PARITY_NONE) in IRDA_Receive_IT()
2552 hirda->pRxBuffPtr += 2U; in IRDA_Receive_IT()
2557 hirda->pRxBuffPtr += 1U; in IRDA_Receive_IT()
2562 if (hirda->Init.Parity == IRDA_PARITY_NONE) in IRDA_Receive_IT()
2564 *hirda->pRxBuffPtr++ = (uint8_t)(uhdata & (uint8_t)0x00FF); in IRDA_Receive_IT()
2568 *hirda->pRxBuffPtr++ = (uint8_t)(uhdata & (uint8_t)0x007F); in IRDA_Receive_IT()
2572 if (--hirda->RxXferCount == 0U) in IRDA_Receive_IT()
2575 CLEAR_BIT(hirda->Instance->CR1, USART_CR1_RXNEIE); in IRDA_Receive_IT()
2578 CLEAR_BIT(hirda->Instance->CR1, USART_CR1_PEIE); in IRDA_Receive_IT()
2581 CLEAR_BIT(hirda->Instance->CR3, USART_CR3_EIE); in IRDA_Receive_IT()
2584 hirda->RxState = HAL_IRDA_STATE_READY; in IRDA_Receive_IT()
2588 hirda->RxCpltCallback(hirda); in IRDA_Receive_IT()
2591 HAL_IRDA_RxCpltCallback(hirda); in IRDA_Receive_IT()
2610 static void IRDA_SetConfig(IRDA_HandleTypeDef *hirda) in IRDA_SetConfig() argument
2615 assert_param(IS_IRDA_INSTANCE(hirda->Instance)); in IRDA_SetConfig()
2616 assert_param(IS_IRDA_BAUDRATE(hirda->Init.BaudRate)); in IRDA_SetConfig()
2617 assert_param(IS_IRDA_WORD_LENGTH(hirda->Init.WordLength)); in IRDA_SetConfig()
2618 assert_param(IS_IRDA_PARITY(hirda->Init.Parity)); in IRDA_SetConfig()
2619 assert_param(IS_IRDA_MODE(hirda->Init.Mode)); in IRDA_SetConfig()
2620 assert_param(IS_IRDA_POWERMODE(hirda->Init.IrDAMode)); in IRDA_SetConfig()
2624 CLEAR_BIT(hirda->Instance->CR2, USART_CR2_STOP); in IRDA_SetConfig()
2628 …CLEAR_BIT(hirda->Instance->CR1, (USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | USART… in IRDA_SetConfig()
2635 SET_BIT(hirda->Instance->CR1, (hirda->Init.WordLength | hirda->Init.Parity | hirda->Init.Mode)); in IRDA_SetConfig()
2639 CLEAR_BIT(hirda->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE)); in IRDA_SetConfig()
2642 if (hirda->Instance == USART1) in IRDA_SetConfig()
2645 hirda->Instance->BRR = IRDA_BRR(pclk, hirda->Init.BaudRate); in IRDA_SetConfig()
2650 hirda->Instance->BRR = IRDA_BRR(pclk, hirda->Init.BaudRate); in IRDA_SetConfig()