182 #ifdef HAL_SWPMI_MODULE_ENABLED 190 #define SWPMI_TIMEOUT_VALUE 22000U 240 HAL_StatusTypeDef status =
HAL_OK;
241 __IO uint32_t wait_loop_index = 0U;
251 assert_param(IS_SWPMI_VOLTAGE_CLASS(hswpmi->Init.VoltageClass));
252 assert_param(IS_SWPMI_BITRATE_VALUE(hswpmi->Init.BitRate));
253 assert_param(IS_SWPMI_TX_BUFFERING_MODE(hswpmi->Init.TxBufferingMode));
254 assert_param(IS_SWPMI_RX_BUFFERING_MODE(hswpmi->Init.RxBufferingMode));
261 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 270 if(hswpmi->MspInitCallback == NULL)
274 hswpmi->MspInitCallback(hswpmi);
284 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
287 WRITE_REG(hswpmi->Instance->ICR, 0x019F);
290 MODIFY_REG(hswpmi->Instance->OR, SWPMI_OR_CLASS, hswpmi->Init.VoltageClass);
293 if(hswpmi->Init.VoltageClass == SWPMI_VOLTAGE_CLASS_B)
298 wait_loop_index = (300U * (SystemCoreClock / (1000000U * 4U))) + 150U;
299 while(wait_loop_index != 0U)
306 WRITE_REG(hswpmi->Instance->BRR, hswpmi->Init.BitRate);
310 SWPMI_CR_RXDMA | SWPMI_CR_TXDMA | SWPMI_CR_RXMODE | SWPMI_CR_TXMODE, \
311 hswpmi->Init.TxBufferingMode | hswpmi->Init.RxBufferingMode);
313 hswpmi->ErrorCode = HAL_SWPMI_ERROR_NONE;
317 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
330 HAL_StatusTypeDef status =
HAL_OK;
345 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
348 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_LPBK);
352 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 353 if(hswpmi->MspDeInitCallback == NULL)
357 hswpmi->MspDeInitCallback(hswpmi);
362 hswpmi->ErrorCode = HAL_SWPMI_ERROR_NONE;
402 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 423 HAL_StatusTypeDef status =
HAL_OK;
425 if(pCallback == NULL)
428 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
439 hswpmi->RxCpltCallback = pCallback;
442 hswpmi->RxHalfCpltCallback = pCallback;
445 hswpmi->TxCpltCallback = pCallback;
448 hswpmi->TxHalfCpltCallback = pCallback;
451 hswpmi->ErrorCallback = pCallback;
454 hswpmi->MspInitCallback = pCallback;
457 hswpmi->MspDeInitCallback = pCallback;
461 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
472 hswpmi->MspInitCallback = pCallback;
475 hswpmi->MspDeInitCallback = pCallback;
479 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
488 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
514 HAL_StatusTypeDef status =
HAL_OK;
543 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
561 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
570 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
649 HAL_StatusTypeDef status =
HAL_OK;
654 if((pData == NULL ) || (Size == 0U))
663 tmp_state = hswpmi->State;
672 __HAL_SWPMI_DISABLE_IT(hswpmi, SWPMI_IT_TCIE | SWPMI_IT_TIE | SWPMI_IT_TXUNRIE | SWPMI_IT_TXBEIE);
675 __HAL_SWPMI_CLEAR_FLAG(hswpmi, SWPMI_FLAG_TXBEF | SWPMI_FLAG_TXUNRF | SWPMI_FLAG_TCF);
678 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
690 if(HAL_IS_BIT_SET(hswpmi->Instance->ISR, SWPMI_FLAG_TXE))
692 hswpmi->Instance->TDR = *ptmp_data;
699 if(Timeout != HAL_MAX_DELAY)
701 if(((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
703 status = HAL_TIMEOUT;
708 }
while(tmp_size != 0U);
714 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_TXBEF_TIMEOUT;
716 status = HAL_TIMEOUT;
738 if((status !=
HAL_OK) && (status != HAL_BUSY))
760 HAL_StatusTypeDef status =
HAL_OK;
765 if((pData == NULL ) || (Size == 0U))
774 tmp_state = hswpmi->State;
783 CLEAR_BIT(hswpmi->Instance->IER, SWPMI_IT_SRIE | SWPMI_IT_RIE | SWPMI_IT_RXBERIE | SWPMI_IT_RXOVRIE | SWPMI_IT_RXBFIE);
786 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
798 if(HAL_IS_BIT_SET(hswpmi->Instance->ISR, SWPMI_FLAG_RXNE))
800 *ptmp_data = hswpmi->Instance->RDR;
807 if(Timeout != HAL_MAX_DELAY)
809 if(((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
811 status = HAL_TIMEOUT;
816 }
while(tmp_size != 0U);
820 if(HAL_IS_BIT_SET(hswpmi->Instance->ISR, SWPMI_FLAG_RXBFF))
823 WRITE_REG(hswpmi->Instance->ICR, SWPMI_FLAG_RXBFF);
843 if((status !=
HAL_OK) && (status != HAL_BUSY))
863 HAL_StatusTypeDef status =
HAL_OK;
866 if((pData == NULL ) || (Size == 0U))
875 tmp_state = hswpmi->State;
879 hswpmi->pTxBuffPtr = pData;
880 hswpmi->TxXferSize = Size;
881 hswpmi->TxXferCount = Size;
882 hswpmi->ErrorCode = HAL_SWPMI_ERROR_NONE;
890 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
898 __HAL_SWPMI_ENABLE_IT(hswpmi, SWPMI_IT_TXUNRIE);
907 __HAL_SWPMI_ENABLE_IT(hswpmi, SWPMI_IT_TIE | SWPMI_IT_TXBEIE | SWPMI_IT_TCIE);
930 HAL_StatusTypeDef status =
HAL_OK;
933 if((pData == NULL ) || (Size == 0U))
942 tmp_state = hswpmi->State;
946 hswpmi->pRxBuffPtr = pData;
947 hswpmi->RxXferSize = Size;
948 hswpmi->RxXferCount = Size;
949 hswpmi->ErrorCode = HAL_SWPMI_ERROR_NONE;
957 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
970 __HAL_SWPMI_ENABLE_IT(hswpmi, SWPMI_IT_RIE | SWPMI_IT_RXBERIE | SWPMI_IT_RXOVRIE | SWPMI_IT_RXBFIE);
993 HAL_StatusTypeDef status =
HAL_OK;
996 if((pData == NULL ) || (Size == 0U))
1005 tmp_state = hswpmi->State;
1009 hswpmi->pTxBuffPtr = pData;
1010 hswpmi->TxXferSize = Size;
1011 hswpmi->TxXferCount = Size;
1012 hswpmi->ErrorCode = HAL_SWPMI_ERROR_NONE;
1020 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
1037 if(
HAL_DMA_Start_IT(hswpmi->hdmatx, (uint32_t)hswpmi->pTxBuffPtr, (uint32_t)&hswpmi->Instance->TDR, Size) !=
HAL_OK)
1039 hswpmi->State = tmp_state;
1040 hswpmi->ErrorCode = HAL_SWPMI_ERROR_DMA;
1052 __HAL_SWPMI_ENABLE_IT(hswpmi, SWPMI_IT_TXUNRIE);
1056 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_TXDMA);
1080 HAL_StatusTypeDef status =
HAL_OK;
1083 if((pData == NULL ) || (Size == 0U))
1092 tmp_state = hswpmi->State;
1096 hswpmi->pRxBuffPtr = pData;
1097 hswpmi->RxXferSize = Size;
1098 hswpmi->ErrorCode = HAL_SWPMI_ERROR_NONE;
1106 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
1123 if(
HAL_DMA_Start_IT(hswpmi->hdmarx, (uint32_t)&hswpmi->Instance->RDR, (uint32_t)hswpmi->pRxBuffPtr, Size) !=
HAL_OK)
1125 hswpmi->State = tmp_state;
1126 hswpmi->ErrorCode = HAL_SWPMI_ERROR_DMA;
1138 __HAL_SWPMI_ENABLE_IT(hswpmi, SWPMI_IT_RXBERIE | SWPMI_IT_RXOVRIE);
1142 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_RXDMA);
1164 HAL_StatusTypeDef status =
HAL_OK;
1170 CLEAR_BIT(hswpmi->Instance->CR, (SWPMI_CR_TXDMA | SWPMI_CR_RXDMA));
1173 if(hswpmi->hdmatx != NULL)
1177 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_DMA;
1182 if(hswpmi->hdmarx != NULL)
1186 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_DMA;
1192 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
1211 HAL_StatusTypeDef status =
HAL_OK;
1217 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
1220 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_LPBK);
1223 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
1239 HAL_StatusTypeDef status =
HAL_OK;
1245 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
1248 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_LPBK);
1251 SET_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
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))
1551 return hswpmi->State;
1562 return hswpmi->ErrorCode;
1591 if(hswpmi->TxXferCount == 0U)
1594 CLEAR_BIT(hswpmi->Instance->IER, (SWPMI_IT_TIE | SWPMI_IT_TXUNRIE));
1598 hswpmi->Instance->TDR = (uint32_t)*hswpmi->pTxBuffPtr;
1599 hswpmi->pTxBuffPtr++;
1600 hswpmi->TxXferCount--;
1617 WRITE_REG(hswpmi->Instance->ICR, SWPMI_FLAG_TXBEF);
1619 CLEAR_BIT(hswpmi->Instance->IER, SWPMI_IT_TIE | SWPMI_IT_TXUNRIE | SWPMI_IT_TXBEIE);
1631 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1632 hswpmi->TxCpltCallback(hswpmi);
1650 *hswpmi->pRxBuffPtr = (uint32_t)(hswpmi->Instance->RDR);
1651 hswpmi->pRxBuffPtr++;
1653 --hswpmi->RxXferCount;
1654 if(hswpmi->RxXferCount == 0U)
1657 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1658 hswpmi->RxCpltCallback(hswpmi);
1678 WRITE_REG(hswpmi->Instance->ICR, SWPMI_FLAG_RXBFF);
1680 CLEAR_BIT(hswpmi->Instance->IER, SWPMI_IT_RIE | SWPMI_IT_RXBERIE | SWPMI_IT_RXOVRIE | SWPMI_IT_RXBFIE);
1701 WRITE_REG(hswpmi->Instance->ICR, SWPMI_FLAG_TCF);
1703 CLEAR_BIT(hswpmi->Instance->IER, SWPMI_IT_TCIE);
1731 if((hdma->
Instance->CCR & DMA_CCR_CIRC) == 0U)
1733 hswpmi->TxXferCount = 0U;
1737 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_TXDMA);
1746 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_TXBEF_TIMEOUT;
1748 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1749 hswpmi->ErrorCallback(hswpmi);
1767 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1768 hswpmi->TxCpltCallback(hswpmi);
1777 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1778 hswpmi->TxCpltCallback(hswpmi);
1794 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1795 hswpmi->TxHalfCpltCallback(hswpmi);
1812 if((hdma->
Instance->CCR & DMA_CCR_CIRC) == 0U)
1814 hswpmi->RxXferCount = 0U;
1818 CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_RXDMA);
1830 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1831 hswpmi->RxCpltCallback(hswpmi);
1846 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1847 hswpmi->RxHalfCpltCallback(hswpmi);
1863 hswpmi->RxXferCount = 0U;
1864 hswpmi->TxXferCount = 0U;
1866 hswpmi->ErrorCode |= HAL_SWPMI_ERROR_DMA;
1868 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1869 hswpmi->ErrorCallback(hswpmi);
1885 hswpmi->RxXferCount = 0U;
1886 hswpmi->TxXferCount = 0U;
1889 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1) 1890 hswpmi->ErrorCallback(hswpmi);
1906 HAL_StatusTypeDef status =
HAL_OK;
1909 while(!(HAL_IS_BIT_SET(hswpmi->Instance->ISR, Flag)))
1912 if ((((
HAL_GetTick() - Tickstart) > Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout == 0U))
1917 status = HAL_TIMEOUT;
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.
DMA handle Structure definition.
__weak void HAL_SWPMI_TxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi)
Tx Half Transfer completed callback.
HAL_StatusTypeDef HAL_SWPMI_Transmit(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout)
Transmit an amount of data in blocking mode.
This file contains all the functions prototypes for the HAL module driver.
static void SWPMI_DMAAbortOnError(DMA_HandleTypeDef *hdma)
DMA SWPMI communication abort callback.
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
DMA_Channel_TypeDef * Instance
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
__weak void HAL_SWPMI_TxCpltCallback(SWPMI_HandleTypeDef *hswpmi)
Tx Transfer completed callback.
HAL_StatusTypeDef HAL_SWPMI_Init(SWPMI_HandleTypeDef *hswpmi)
Initialize the SWPMI peripheral according to the specified parameters in the SWPMI_InitTypeDef.
__weak void HAL_SWPMI_RxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi)
Rx Half Transfer completed callback.
static void SWPMI_EndReceive_IT(SWPMI_HandleTypeDef *hswpmi)
Wraps up reception in non-blocking mode.
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
HAL_StatusTypeDef HAL_SWPMI_Receive_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size)
Receive an amount of data in non-blocking mode with DMA interrupt.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
static void SWPMI_DMATransmitCplt(DMA_HandleTypeDef *hdma)
DMA SWPMI transmit process complete callback.
__weak void HAL_SWPMI_RxCpltCallback(SWPMI_HandleTypeDef *hswpmi)
Rx Transfer completed callback.
HAL_SWPMI_CallbackIDTypeDef
SWPMI callback ID enumeration definition.
static void SWPMI_DMAReceiveCplt(DMA_HandleTypeDef *hdma)
DMA SWPMI receive process complete callback.
__weak void HAL_SWPMI_ErrorCallback(SWPMI_HandleTypeDef *hswpmi)
SWPMI error callback.
HAL_SWPMI_StateTypeDef HAL_SWPMI_GetState(SWPMI_HandleTypeDef *hswpmi)
Return the SWPMI handle state.
static void SWPMI_DMAError(DMA_HandleTypeDef *hdma)
DMA SWPMI communication error callback.
static void SWPMI_Receive_IT(SWPMI_HandleTypeDef *hswpmi)
Receive an amount of data in interrupt mode.
__weak void HAL_SWPMI_MspDeInit(SWPMI_HandleTypeDef *hswpmi)
DeInitialize the SWPMI MSP.
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Abort the DMA Transfer.
HAL_StatusTypeDef HAL_SWPMI_DisableLoopback(SWPMI_HandleTypeDef *hswpmi)
Disable the Loopback mode.
void(* pSWPMI_CallbackTypeDef)(SWPMI_HandleTypeDef *hswpmi)
SWPMI callback pointer definition.
static void SWPMI_DMARxHalfCplt(DMA_HandleTypeDef *hdma)
DMA SWPMI receive process half complete callback.
uint32_t HAL_SWPMI_GetError(SWPMI_HandleTypeDef *hswpmi)
Return the SWPMI error code.
HAL_StatusTypeDef HAL_SWPMI_DMAStop(SWPMI_HandleTypeDef *hswpmi)
Stop all DMA transfers.
static void SWPMI_DMATxHalfCplt(DMA_HandleTypeDef *hdma)
DMA SWPMI transmit process half complete callback.
HAL_SWPMI_StateTypeDef
HAL SWPMI State structures definition.
struct __SWPMI_HandleTypeDef else typedef struct endif SWPMI_HandleTypeDef
SWPMI handle Structure definition.
HAL_StatusTypeDef HAL_SWPMI_RegisterCallback(SWPMI_HandleTypeDef *hswpmi, HAL_SWPMI_CallbackIDTypeDef CallbackID, pSWPMI_CallbackTypeDef pCallback)
Register a user SWPMI callback to be used instead of the weak predefined callback.
HAL_StatusTypeDef HAL_SWPMI_Receive(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout)
Receive an amount of data in blocking mode.
HAL_StatusTypeDef HAL_SWPMI_Receive_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size)
Receive an amount of data in non-blocking mode with interrupt.
void HAL_SWPMI_IRQHandler(SWPMI_HandleTypeDef *hswpmi)
Handle SWPMI interrupt request.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
HAL_StatusTypeDef HAL_SWPMI_Transmit_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size)
Transmit an amount of data in non-blocking mode with DMA interrupt.
static HAL_StatusTypeDef SWPMI_WaitOnFlagSetUntilTimeout(SWPMI_HandleTypeDef *hswpmi, uint32_t Flag, uint32_t Tickstart, uint32_t Timeout)
Handle SWPMI Communication Timeout.
HAL_StatusTypeDef HAL_SWPMI_Transmit_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size)
Transmit an amount of data in non-blocking mode with interrupt.
HAL_StatusTypeDef HAL_SWPMI_UnRegisterCallback(SWPMI_HandleTypeDef *hswpmi, HAL_SWPMI_CallbackIDTypeDef CallbackID)
Unregister a user SWPMI callback. SWPMI callback is redirected to the weak predefined callback...
__weak void HAL_SWPMI_MspInit(SWPMI_HandleTypeDef *hswpmi)
Initialize the SWPMI MSP.
HAL_StatusTypeDef HAL_SWPMI_DeInit(SWPMI_HandleTypeDef *hswpmi)
De-initialize the SWPMI peripheral.
static void SWPMI_Transmit_IT(SWPMI_HandleTypeDef *hswpmi)
Transmit an amount of data in interrupt mode.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
HAL_StatusTypeDef HAL_SWPMI_EnableLoopback(SWPMI_HandleTypeDef *hswpmi)
Enable the Loopback mode.