Handle SWPMI interrupt request.
1284 uint32_t regisr = READ_REG(hswpmi->Instance->ISR);
1285 uint32_t regier = READ_REG(hswpmi->Instance->IER);
1286 uint32_t errcode = HAL_SWPMI_ERROR_NONE;
1289 if(((regisr & SWPMI_FLAG_RXBERF) != 0U) && ((regier & SWPMI_IT_RXBERIE) != 0U))
1292 CLEAR_BIT(hswpmi->Instance->IER, SWPMI_IT_RXBERIE | SWPMI_IT_RXBFIE);
1294 WRITE_REG(hswpmi->Instance->ICR, SWPMI_FLAG_RXBERF | SWPMI_FLAG_RXBFF);
1296 errcode |= HAL_SWPMI_ERROR_CRC;
1300 if(((regisr & SWPMI_FLAG_RXOVRF) != 0U) && ((regier & SWPMI_IT_RXOVRIE) != 0U))
1303 CLEAR_BIT(hswpmi->Instance->IER, SWPMI_IT_RXOVRIE);
1305 WRITE_REG(hswpmi->Instance->ICR, SWPMI_FLAG_RXOVRF);
1307 errcode |= HAL_SWPMI_ERROR_OVR;
1311 if(((regisr & SWPMI_FLAG_TXUNRF) != 0U) && ((regier & SWPMI_IT_TXUNRIE) != 0U))
1314 CLEAR_BIT(hswpmi->Instance->IER, SWPMI_IT_TXUNRIE);
1316 WRITE_REG(hswpmi->Instance->ICR, SWPMI_FLAG_TXUNRF);
1318 errcode |= HAL_SWPMI_ERROR_UDR;
1322 if(errcode != HAL_SWPMI_ERROR_NONE)
1324 hswpmi->ErrorCode |= errcode;
1326 if((errcode & HAL_SWPMI_ERROR_UDR) != 0U)
1329 if(HAL_IS_BIT_SET(hswpmi->Instance->CR, SWPMI_CR_TXDMA))
1332 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_TXDMA);
1335 if(hswpmi->hdmatx != NULL)
1344 hswpmi->hdmatx->XferAbortCallback(hswpmi->hdmatx);
1352 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1353 hswpmi->ErrorCallback(hswpmi);
1364 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1365 hswpmi->ErrorCallback(hswpmi);
1374 if(HAL_IS_BIT_SET(hswpmi->Instance->CR, SWPMI_CR_RXDMA))
1377 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_RXDMA);
1380 if(hswpmi->hdmarx != NULL)
1389 hswpmi->hdmarx->XferAbortCallback(hswpmi->hdmarx);
1397 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1398 hswpmi->ErrorCallback(hswpmi);
1409 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1410 hswpmi->ErrorCallback(hswpmi);
1419 if(((regisr & SWPMI_FLAG_RXNE) != 0U) && ((regier & SWPMI_IT_RIE) != 0U))
1425 if(((regisr & SWPMI_FLAG_TXE) != 0U) && ((regier & SWPMI_IT_TIE) != 0U))
1431 if(((regisr & SWPMI_FLAG_TXBEF) != 0U) && ((regier & SWPMI_IT_TXBEIE) != 0U))
1437 if(((regisr & SWPMI_FLAG_RXBFF) != 0U) && ((regier & SWPMI_IT_RXBFIE) != 0U))
1443 if(((regisr & SWPMI_FLAG_TCF) != 0U) && ((regier & SWPMI_IT_TCIE) != 0U))
static void SWPMI_EndTransmitReceive_IT(SWPMI_HandleTypeDef *hswpmi)
Wraps up transmission and reception in non-blocking mode.
static void SWPMI_EndTransmit_IT(SWPMI_HandleTypeDef *hswpmi)
Wraps up transmission in non-blocking mode.
static void SWPMI_DMAAbortOnError(DMA_HandleTypeDef *hdma)
DMA SWPMI communication abort callback.
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
static void SWPMI_EndReceive_IT(SWPMI_HandleTypeDef *hswpmi)
Wraps up reception in non-blocking mode.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
__weak void HAL_SWPMI_ErrorCallback(SWPMI_HandleTypeDef *hswpmi)
SWPMI error callback.
static void SWPMI_Receive_IT(SWPMI_HandleTypeDef *hswpmi)
Receive an amount of data in interrupt mode.
static void SWPMI_Transmit_IT(SWPMI_HandleTypeDef *hswpmi)
Transmit an amount of data in interrupt mode.