Initialize the SWPMI peripheral according to the specified parameters in the SWPMI_InitTypeDef.
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);
__weak void HAL_SWPMI_TxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi)
Tx Half Transfer completed callback.
__weak void HAL_SWPMI_TxCpltCallback(SWPMI_HandleTypeDef *hswpmi)
Tx Transfer completed callback.
__weak void HAL_SWPMI_RxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi)
Rx Half Transfer completed callback.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
__weak void HAL_SWPMI_RxCpltCallback(SWPMI_HandleTypeDef *hswpmi)
Rx Transfer completed callback.
__weak void HAL_SWPMI_ErrorCallback(SWPMI_HandleTypeDef *hswpmi)
SWPMI error callback.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
__weak void HAL_SWPMI_MspInit(SWPMI_HandleTypeDef *hswpmi)
Initialize the SWPMI MSP.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))