STM32L4xx_HAL_Driver  1.14.0
Initialization/de-initialization methods

Initialization and Configuration functions. More...

Functions

HAL_StatusTypeDef HAL_SWPMI_Init (SWPMI_HandleTypeDef *hswpmi)
 Initialize the SWPMI peripheral according to the specified parameters in the SWPMI_InitTypeDef. More...
 
HAL_StatusTypeDef HAL_SWPMI_DeInit (SWPMI_HandleTypeDef *hswpmi)
 De-initialize the SWPMI peripheral. More...
 
__weak void HAL_SWPMI_MspInit (SWPMI_HandleTypeDef *hswpmi)
 Initialize the SWPMI MSP. More...
 
__weak void HAL_SWPMI_MspDeInit (SWPMI_HandleTypeDef *hswpmi)
 DeInitialize the SWPMI MSP. More...
 
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. More...
 
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. More...
 

Detailed Description

Initialization and Configuration functions.

 ===============================================================================
            ##### Initialization and Configuration functions #####
 ===============================================================================
    [..]  This section provides functions allowing to:
      (+) Initialize and configure the SWPMI peripheral.
      (+) De-initialize the SWPMI peripheral.

Function Documentation

◆ HAL_SWPMI_DeInit()

HAL_StatusTypeDef HAL_SWPMI_DeInit ( SWPMI_HandleTypeDef hswpmi)

De-initialize the SWPMI peripheral.

Parameters
hswpmiSWPMI handle
Return values
HALstatus

Definition at line 328 of file stm32l4xx_hal_swpmi.c.

329 {
330  HAL_StatusTypeDef status = HAL_OK;
331 
332  /* Check the SWPMI handle allocation */
333  if(hswpmi == NULL)
334  {
335  status = HAL_ERROR;
336  }
337  else
338  {
339  /* Check the parameters */
340  assert_param(IS_SWPMI_INSTANCE(hswpmi->Instance));
341 
342  hswpmi->State = HAL_SWPMI_STATE_BUSY;
343 
344  /* Disable SWPMI interface */
345  CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
346 
347  /* Disable Loopback mode */
348  CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_LPBK);
349 
350 
351  /* DeInit the low level hardware: GPIO, CLOCK, NVIC and DMA */
352 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1)
353  if(hswpmi->MspDeInitCallback == NULL)
354  {
355  hswpmi->MspDeInitCallback = HAL_SWPMI_MspDeInit;
356  }
357  hswpmi->MspDeInitCallback(hswpmi);
358 #else
359  HAL_SWPMI_MspDeInit(hswpmi);
360 #endif
361 
362  hswpmi->ErrorCode = HAL_SWPMI_ERROR_NONE;
363  hswpmi->State = HAL_SWPMI_STATE_RESET;
364 
365  /* Release Lock */
366  __HAL_UNLOCK(hswpmi);
367  }
368 
369  return status;
370 }
__HAL_UNLOCK(hrtc)
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
return HAL_OK
__weak void HAL_SWPMI_MspDeInit(SWPMI_HandleTypeDef *hswpmi)
DeInitialize the SWPMI MSP.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_SWPMI_Init()

HAL_StatusTypeDef HAL_SWPMI_Init ( SWPMI_HandleTypeDef hswpmi)

Initialize the SWPMI peripheral according to the specified parameters in the SWPMI_InitTypeDef.

Parameters
hswpmiSWPMI handle
Return values
HALstatus

Definition at line 238 of file stm32l4xx_hal_swpmi.c.

239 {
240  HAL_StatusTypeDef status = HAL_OK;
241  __IO uint32_t wait_loop_index = 0U;
242 
243  /* Check the SWPMI handle allocation */
244  if(hswpmi == NULL)
245  {
246  status = HAL_ERROR;
247  }
248  else
249  {
250  /* Check the parameters */
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));
255 
256  if(hswpmi->State == HAL_SWPMI_STATE_RESET)
257  {
258  /* Allocate lock resource and initialize it */
259  hswpmi->Lock = HAL_UNLOCKED;
260 
261 #if (USE_HAL_SWPMI_REGISTER_CALLBACKS == 1)
262  /* Reset callback pointers to the weak predefined callbacks */
263  hswpmi->RxCpltCallback = HAL_SWPMI_RxCpltCallback;
264  hswpmi->RxHalfCpltCallback = HAL_SWPMI_RxHalfCpltCallback;
265  hswpmi->TxCpltCallback = HAL_SWPMI_TxCpltCallback;
266  hswpmi->TxHalfCpltCallback = HAL_SWPMI_TxHalfCpltCallback;
267  hswpmi->ErrorCallback = HAL_SWPMI_ErrorCallback;
268 
269  /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */
270  if(hswpmi->MspInitCallback == NULL)
271  {
272  hswpmi->MspInitCallback = HAL_SWPMI_MspInit;
273  }
274  hswpmi->MspInitCallback(hswpmi);
275 #else
276  /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */
277  HAL_SWPMI_MspInit(hswpmi);
278 #endif
279  }
280 
281  hswpmi->State = HAL_SWPMI_STATE_BUSY;
282 
283  /* Disable SWPMI interface */
284  CLEAR_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
285 
286  /* Clear all SWPMI interface flags */
287  WRITE_REG(hswpmi->Instance->ICR, 0x019F);
288 
289  /* Apply Voltage class selection */
290  MODIFY_REG(hswpmi->Instance->OR, SWPMI_OR_CLASS, hswpmi->Init.VoltageClass);
291 
292  /* If Voltage class B, apply 300 µs delay */
293  if(hswpmi->Init.VoltageClass == SWPMI_VOLTAGE_CLASS_B)
294  {
295  /* Insure 300 µs wait to insure SWPMI_IO output not higher than 1.8V */
296  /* Wait loop initialization and execution */
297  /* Note: Variable divided by 4 to compensate partially CPU processing cycles. */
298  wait_loop_index = (300U * (SystemCoreClock / (1000000U * 4U))) + 150U;
299  while(wait_loop_index != 0U)
300  {
301  wait_loop_index--;
302  }
303  }
304 
305  /* Configure the BRR register (Bitrate) */
306  WRITE_REG(hswpmi->Instance->BRR, hswpmi->Init.BitRate);
307 
308  /* Apply SWPMI CR configuration */
309  MODIFY_REG(hswpmi->Instance->CR, \
310  SWPMI_CR_RXDMA | SWPMI_CR_TXDMA | SWPMI_CR_RXMODE | SWPMI_CR_TXMODE, \
311  hswpmi->Init.TxBufferingMode | hswpmi->Init.RxBufferingMode);
312 
313  hswpmi->ErrorCode = HAL_SWPMI_ERROR_NONE;
314  hswpmi->State = HAL_SWPMI_STATE_READY;
315 
316  /* Enable SWPMI peripheral */
317  SET_BIT(hswpmi->Instance->CR, SWPMI_CR_SWPACT);
318  }
319 
320  return status;
321 }
__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.
return HAL_OK
__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))

◆ HAL_SWPMI_MspDeInit()

__weak void HAL_SWPMI_MspDeInit ( SWPMI_HandleTypeDef hswpmi)

DeInitialize the SWPMI MSP.

Parameters
hswpmiSWPMI handle
Return values
None

Definition at line 392 of file stm32l4xx_hal_swpmi.c.

393 {
394  /* Prevent unused argument(s) compilation warning */
395  UNUSED(hswpmi);
396 
397  /* NOTE : This function should not be modified, when the callback is needed,
398  the HAL_SWPMI_MspDeInit can be implemented in the user file
399  */
400 }

◆ HAL_SWPMI_MspInit()

__weak void HAL_SWPMI_MspInit ( SWPMI_HandleTypeDef hswpmi)

Initialize the SWPMI MSP.

Parameters
hswpmiSWPMI handle
Return values
None

Definition at line 377 of file stm32l4xx_hal_swpmi.c.

378 {
379  /* Prevent unused argument(s) compilation warning */
380  UNUSED(hswpmi);
381 
382  /* NOTE : This function should not be modified, when the callback is needed,
383  the HAL_SWPMI_MspInit can be implemented in the user file
384  */
385 }

◆ HAL_SWPMI_RegisterCallback()

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.

Parameters
hswpmiSWPMI handle.
CallbackIDID of the callback to be registered. This parameter can be one of the following values:
pCallbackpointer to the callback function.
Return values
HALstatus.

Definition at line 419 of file stm32l4xx_hal_swpmi.c.

422 {
423  HAL_StatusTypeDef status = HAL_OK;
424 
425  if(pCallback == NULL)
426  {
427  /* update the error code */
428  hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
429  /* update return status */
430  status = HAL_ERROR;
431  }
432  else
433  {
434  if(hswpmi->State == HAL_SWPMI_STATE_READY)
435  {
436  switch (CallbackID)
437  {
439  hswpmi->RxCpltCallback = pCallback;
440  break;
442  hswpmi->RxHalfCpltCallback = pCallback;
443  break;
445  hswpmi->TxCpltCallback = pCallback;
446  break;
448  hswpmi->TxHalfCpltCallback = pCallback;
449  break;
450  case HAL_SWPMI_ERROR_CB_ID :
451  hswpmi->ErrorCallback = pCallback;
452  break;
454  hswpmi->MspInitCallback = pCallback;
455  break;
457  hswpmi->MspDeInitCallback = pCallback;
458  break;
459  default :
460  /* update the error code */
461  hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
462  /* update return status */
463  status = HAL_ERROR;
464  break;
465  }
466  }
467  else if(hswpmi->State == HAL_SWPMI_STATE_RESET)
468  {
469  switch (CallbackID)
470  {
472  hswpmi->MspInitCallback = pCallback;
473  break;
475  hswpmi->MspDeInitCallback = pCallback;
476  break;
477  default :
478  /* update the error code */
479  hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
480  /* update return status */
481  status = HAL_ERROR;
482  break;
483  }
484  }
485  else
486  {
487  /* update the error code */
488  hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
489  /* update return status */
490  status = HAL_ERROR;
491  }
492  }
493  return status;
494 }
return HAL_OK

◆ HAL_SWPMI_UnRegisterCallback()

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.

Parameters
hswpmiSWPMI handle.
CallbackIDID of the callback to be unregistered. This parameter can be one of the following values:
Return values
HALstatus.

Definition at line 511 of file stm32l4xx_hal_swpmi.c.

513 {
514  HAL_StatusTypeDef status = HAL_OK;
515 
516  if(hswpmi->State == HAL_SWPMI_STATE_READY)
517  {
518  switch (CallbackID)
519  {
521  hswpmi->RxCpltCallback = HAL_SWPMI_RxCpltCallback;
522  break;
524  hswpmi->RxHalfCpltCallback = HAL_SWPMI_RxHalfCpltCallback;
525  break;
527  hswpmi->TxCpltCallback = HAL_SWPMI_TxCpltCallback;
528  break;
530  hswpmi->TxHalfCpltCallback = HAL_SWPMI_TxHalfCpltCallback;
531  break;
532  case HAL_SWPMI_ERROR_CB_ID :
533  hswpmi->ErrorCallback = HAL_SWPMI_ErrorCallback;
534  break;
536  hswpmi->MspInitCallback = HAL_SWPMI_MspInit;
537  break;
539  hswpmi->MspDeInitCallback = HAL_SWPMI_MspDeInit;
540  break;
541  default :
542  /* update the error code */
543  hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
544  /* update return status */
545  status = HAL_ERROR;
546  break;
547  }
548  }
549  else if(hswpmi->State == HAL_SWPMI_STATE_RESET)
550  {
551  switch (CallbackID)
552  {
554  hswpmi->MspInitCallback = HAL_SWPMI_MspInit;
555  break;
557  hswpmi->MspDeInitCallback = HAL_SWPMI_MspDeInit;
558  break;
559  default :
560  /* update the error code */
561  hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
562  /* update return status */
563  status = HAL_ERROR;
564  break;
565  }
566  }
567  else
568  {
569  /* update the error code */
570  hswpmi->ErrorCode |= HAL_SWPMI_ERROR_INVALID_CALLBACK;
571  /* update return status */
572  status = HAL_ERROR;
573  }
574  return status;
575 }
__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.
__weak void HAL_SWPMI_RxCpltCallback(SWPMI_HandleTypeDef *hswpmi)
Rx Transfer completed callback.
return HAL_OK
__weak void HAL_SWPMI_ErrorCallback(SWPMI_HandleTypeDef *hswpmi)
SWPMI error callback.
__weak void HAL_SWPMI_MspDeInit(SWPMI_HandleTypeDef *hswpmi)
DeInitialize the SWPMI MSP.
__weak void HAL_SWPMI_MspInit(SWPMI_HandleTypeDef *hswpmi)
Initialize the SWPMI MSP.