STM32L4xx_HAL_Driver  1.14.0
Peripheral Control functions

RCC clocks control functions. More...

Functions

void HAL_RCC_MCOConfig (uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv)
 Select the clock source to output on MCO pin(PA8). More...
 
void HAL_RCC_EnableCSS (void)
 Enable the Clock Security System. More...
 
uint32_t HAL_RCC_GetSysClockFreq (void)
 Return the SYSCLK frequency. More...
 
uint32_t HAL_RCC_GetHCLKFreq (void)
 Return the HCLK frequency. More...
 
uint32_t HAL_RCC_GetPCLK1Freq (void)
 Return the PCLK1 frequency. More...
 
uint32_t HAL_RCC_GetPCLK2Freq (void)
 Return the PCLK2 frequency. More...
 
void HAL_RCC_GetOscConfig (RCC_OscInitTypeDef *RCC_OscInitStruct)
 Configure the RCC_OscInitStruct according to the internal RCC configuration registers. More...
 
void HAL_RCC_GetClockConfig (RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency)
 Configure the RCC_ClkInitStruct according to the internal RCC configuration registers. More...
 
void HAL_RCC_NMI_IRQHandler (void)
 Handle the RCC Clock Security System interrupt request. More...
 
void HAL_RCC_CSSCallback (void)
 RCC Clock Security System interrupt callback. More...
 

Detailed Description

RCC clocks control functions.

 ===============================================================================
                      ##### Peripheral Control functions #####
 ===============================================================================
    [..]
    This subsection provides a set of functions allowing to:

    (+) Ouput clock to MCO pin.
    (+) Retrieve current clock frequencies.
    (+) Enable the Clock Security System.

Function Documentation

◆ HAL_RCC_CSSCallback()

__weak void HAL_RCC_CSSCallback ( void  )

RCC Clock Security System interrupt callback.

Return values
none

Definition at line 1691 of file stm32l4xx_hal_rcc.c.

1692 {
1693  /* NOTE : This function should not be modified, when the callback is needed,
1694  the HAL_RCC_CSSCallback should be implemented in the user file
1695  */
1696 }

◆ HAL_RCC_EnableCSS()

void HAL_RCC_EnableCSS ( void  )

Enable the Clock Security System.

Note
If a failure is detected on the HSE oscillator clock, this oscillator is automatically disabled and an interrupt is generated to inform the software about the failure (Clock Security System Interrupt, CSSI), allowing the MCU to perform rescue operations. The CSSI is linked to the Cortex-M4 NMI (Non-Maskable Interrupt) exception vector.
The Clock Security System can only be cleared by reset.
Return values
None

Definition at line 1664 of file stm32l4xx_hal_rcc.c.

1665 {
1666  SET_BIT(RCC->CR, RCC_CR_CSSON) ;
1667 }

◆ HAL_RCC_GetClockConfig()

void HAL_RCC_GetClockConfig ( RCC_ClkInitTypeDef RCC_ClkInitStruct,
uint32_t *  pFLatency 
)

Configure the RCC_ClkInitStruct according to the internal RCC configuration registers.

Parameters
RCC_ClkInitStructpointer to an RCC_ClkInitTypeDef structure that will be configured.
pFLatencyPointer on the Flash Latency.
Return values
None

Definition at line 1629 of file stm32l4xx_hal_rcc.c.

1630 {
1631  /* Check the parameters */
1632  assert_param(RCC_ClkInitStruct != (void *)NULL);
1633  assert_param(pFLatency != (void *)NULL);
1634 
1635  /* Set all possible values for the Clock type parameter --------------------*/
1636  RCC_ClkInitStruct->ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
1637 
1638  /* Get the SYSCLK configuration --------------------------------------------*/
1639  RCC_ClkInitStruct->SYSCLKSource = READ_BIT(RCC->CFGR, RCC_CFGR_SW);
1640 
1641  /* Get the HCLK configuration ----------------------------------------------*/
1642  RCC_ClkInitStruct->AHBCLKDivider = READ_BIT(RCC->CFGR, RCC_CFGR_HPRE);
1643 
1644  /* Get the APB1 configuration ----------------------------------------------*/
1645  RCC_ClkInitStruct->APB1CLKDivider = READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1);
1646 
1647  /* Get the APB2 configuration ----------------------------------------------*/
1648  RCC_ClkInitStruct->APB2CLKDivider = (READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2) >> 3U);
1649 
1650  /* Get the Flash Wait State (Latency) configuration ------------------------*/
1651  *pFLatency = __HAL_FLASH_GET_LATENCY();
1652 }
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_RCC_GetHCLKFreq()

uint32_t HAL_RCC_GetHCLKFreq ( void  )

Return the HCLK frequency.

Note
Each time HCLK changes, this function must be called to update the right HCLK value. Otherwise, any configuration based on this function will be incorrect.
The SystemCoreClock CMSIS variable is used to store System Clock Frequency.
Return values
HCLKfrequency in Hz

Definition at line 1434 of file stm32l4xx_hal_rcc.c.

1435 {
1436  return SystemCoreClock;
1437 }

◆ HAL_RCC_GetOscConfig()

void HAL_RCC_GetOscConfig ( RCC_OscInitTypeDef RCC_OscInitStruct)

Configure the RCC_OscInitStruct according to the internal RCC configuration registers.

Parameters
RCC_OscInitStructpointer to an RCC_OscInitTypeDef structure that will be configured.
Return values
None

Definition at line 1470 of file stm32l4xx_hal_rcc.c.

1471 {
1472  /* Check the parameters */
1473  assert_param(RCC_OscInitStruct != (void *)NULL);
1474 
1475  /* Set all possible values for the Oscillator type parameter ---------------*/
1476 #if defined(RCC_HSI48_SUPPORT)
1477  RCC_OscInitStruct->OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_MSI | \
1478  RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_HSI48;
1479 #else
1480  RCC_OscInitStruct->OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_MSI | \
1481  RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_LSI;
1482 #endif /* RCC_HSI48_SUPPORT */
1483 
1484  /* Get the HSE configuration -----------------------------------------------*/
1485  if(READ_BIT(RCC->CR, RCC_CR_HSEBYP) == RCC_CR_HSEBYP)
1486  {
1487  RCC_OscInitStruct->HSEState = RCC_HSE_BYPASS;
1488  }
1489  else if(READ_BIT(RCC->CR, RCC_CR_HSEON) == RCC_CR_HSEON)
1490  {
1491  RCC_OscInitStruct->HSEState = RCC_HSE_ON;
1492  }
1493  else
1494  {
1495  RCC_OscInitStruct->HSEState = RCC_HSE_OFF;
1496  }
1497 
1498  /* Get the MSI configuration -----------------------------------------------*/
1499  if(READ_BIT(RCC->CR, RCC_CR_MSION) == RCC_CR_MSION)
1500  {
1501  RCC_OscInitStruct->MSIState = RCC_MSI_ON;
1502  }
1503  else
1504  {
1505  RCC_OscInitStruct->MSIState = RCC_MSI_OFF;
1506  }
1507 
1508  RCC_OscInitStruct->MSICalibrationValue = READ_BIT(RCC->ICSCR, RCC_ICSCR_MSITRIM) >> RCC_ICSCR_MSITRIM_Pos;
1509  RCC_OscInitStruct->MSIClockRange = READ_BIT(RCC->CR, RCC_CR_MSIRANGE);
1510 
1511  /* Get the HSI configuration -----------------------------------------------*/
1512  if(READ_BIT(RCC->CR, RCC_CR_HSION) == RCC_CR_HSION)
1513  {
1514  RCC_OscInitStruct->HSIState = RCC_HSI_ON;
1515  }
1516  else
1517  {
1518  RCC_OscInitStruct->HSIState = RCC_HSI_OFF;
1519  }
1520 
1521  RCC_OscInitStruct->HSICalibrationValue = READ_BIT(RCC->ICSCR, RCC_ICSCR_HSITRIM) >> RCC_ICSCR_HSITRIM_Pos;
1522 
1523  /* Get the LSE configuration -----------------------------------------------*/
1524  if(READ_BIT(RCC->BDCR, RCC_BDCR_LSEBYP) == RCC_BDCR_LSEBYP)
1525  {
1526 #if defined(RCC_BDCR_LSESYSDIS)
1527  if((RCC->BDCR & RCC_BDCR_LSESYSDIS) == RCC_BDCR_LSESYSDIS)
1528  {
1529  RCC_OscInitStruct->LSEState = RCC_LSE_BYPASS_RTC_ONLY;
1530  }
1531  else
1532 #endif /* RCC_BDCR_LSESYSDIS */
1533  {
1534  RCC_OscInitStruct->LSEState = RCC_LSE_BYPASS;
1535  }
1536  }
1537  else if(READ_BIT(RCC->BDCR, RCC_BDCR_LSEON) == RCC_BDCR_LSEON)
1538  {
1539 #if defined(RCC_BDCR_LSESYSDIS)
1540  if((RCC->BDCR & RCC_BDCR_LSESYSDIS) == RCC_BDCR_LSESYSDIS)
1541  {
1542  RCC_OscInitStruct->LSEState = RCC_LSE_ON_RTC_ONLY;
1543  }
1544  else
1545 #endif /* RCC_BDCR_LSESYSDIS */
1546  {
1547  RCC_OscInitStruct->LSEState = RCC_LSE_ON;
1548  }
1549  }
1550  else
1551  {
1552  RCC_OscInitStruct->LSEState = RCC_LSE_OFF;
1553  }
1554 
1555  /* Get the LSI configuration -----------------------------------------------*/
1556  if(READ_BIT(RCC->CSR, RCC_CSR_LSION) == RCC_CSR_LSION)
1557  {
1558  RCC_OscInitStruct->LSIState = RCC_LSI_ON;
1559  }
1560  else
1561  {
1562  RCC_OscInitStruct->LSIState = RCC_LSI_OFF;
1563  }
1564 #if defined(RCC_CSR_LSIPREDIV)
1565 
1566  /* Get the LSI configuration -----------------------------------------------*/
1567  if((RCC->CSR & RCC_CSR_LSIPREDIV) == RCC_CSR_LSIPREDIV)
1568  {
1569  RCC_OscInitStruct->LSIDiv = RCC_LSI_DIV128;
1570  }
1571  else
1572  {
1573  RCC_OscInitStruct->LSIDiv = RCC_LSI_DIV1;
1574  }
1575 #endif /* RCC_CSR_LSIPREDIV */
1576 
1577 #if defined(RCC_HSI48_SUPPORT)
1578  /* Get the HSI48 configuration ---------------------------------------------*/
1579  if(READ_BIT(RCC->CRRCR, RCC_CRRCR_HSI48ON) == RCC_CRRCR_HSI48ON)
1580  {
1581  RCC_OscInitStruct->HSI48State = RCC_HSI48_ON;
1582  }
1583  else
1584  {
1585  RCC_OscInitStruct->HSI48State = RCC_HSI48_OFF;
1586  }
1587 #else
1588  RCC_OscInitStruct->HSI48State = RCC_HSI48_OFF;
1589 #endif /* RCC_HSI48_SUPPORT */
1590 
1591  /* Get the PLL configuration -----------------------------------------------*/
1592  if(READ_BIT(RCC->CR, RCC_CR_PLLON) == RCC_CR_PLLON)
1593  {
1594  RCC_OscInitStruct->PLL.PLLState = RCC_PLL_ON;
1595  }
1596  else
1597  {
1598  RCC_OscInitStruct->PLL.PLLState = RCC_PLL_OFF;
1599  }
1600  RCC_OscInitStruct->PLL.PLLSource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC);
1601  RCC_OscInitStruct->PLL.PLLM = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U;
1602  RCC_OscInitStruct->PLL.PLLN = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos;
1603  RCC_OscInitStruct->PLL.PLLQ = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos) + 1U) << 1U);
1604  RCC_OscInitStruct->PLL.PLLR = (((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U) << 1U);
1605 #if defined(RCC_PLLP_SUPPORT)
1606 #if defined(RCC_PLLP_DIV_2_31_SUPPORT)
1607  RCC_OscInitStruct->PLL.PLLP = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLPDIV) >> RCC_PLLCFGR_PLLPDIV_Pos;
1608 #else
1609  if(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLP) != 0U)
1610  {
1611  RCC_OscInitStruct->PLL.PLLP = RCC_PLLP_DIV17;
1612  }
1613  else
1614  {
1615  RCC_OscInitStruct->PLL.PLLP = RCC_PLLP_DIV7;
1616  }
1617 #endif /* RCC_PLLP_DIV_2_31_SUPPORT */
1618 #endif /* RCC_PLLP_SUPPORT */
1619 }
RCC_PLLInitTypeDef PLL
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_RCC_GetPCLK1Freq()

uint32_t HAL_RCC_GetPCLK1Freq ( void  )

Return the PCLK1 frequency.

Note
Each time PCLK1 changes, this function must be called to update the right PCLK1 value. Otherwise, any configuration based on this function will be incorrect.
Return values
PCLK1frequency in Hz

Definition at line 1445 of file stm32l4xx_hal_rcc.c.

1446 {
1447  /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/
1448  return (HAL_RCC_GetHCLKFreq() >> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos] & 0x1FU));
1449 }
uint32_t HAL_RCC_GetHCLKFreq(void)
Return the HCLK frequency.

◆ HAL_RCC_GetPCLK2Freq()

uint32_t HAL_RCC_GetPCLK2Freq ( void  )

Return the PCLK2 frequency.

Note
Each time PCLK2 changes, this function must be called to update the right PCLK2 value. Otherwise, any configuration based on this function will be incorrect.
Return values
PCLK2frequency in Hz

Definition at line 1457 of file stm32l4xx_hal_rcc.c.

1458 {
1459  /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/
1460  return (HAL_RCC_GetHCLKFreq()>> (APBPrescTable[READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos] & 0x1FU));
1461 }
uint32_t HAL_RCC_GetHCLKFreq(void)
Return the HCLK frequency.

◆ HAL_RCC_GetSysClockFreq()

uint32_t HAL_RCC_GetSysClockFreq ( void  )

Return the SYSCLK frequency.

Note
The system frequency computed by this function is not the real frequency in the chip. It is calculated based on the predefined constant and the selected clock source:
If SYSCLK source is MSI, function returns values based on MSI Value as defined by the MSI range.
If SYSCLK source is HSI, function returns values based on HSI_VALUE(*)
If SYSCLK source is HSE, function returns values based on HSE_VALUE(**)
If SYSCLK source is PLL, function returns values based on HSE_VALUE(**), HSI_VALUE(*) or MSI Value multiplied/divided by the PLL factors.
(*) HSI_VALUE is a constant defined in stm32l4xx_hal_conf.h file (default value 16 MHz) but the real value may vary depending on the variations in voltage and temperature.
(**) HSE_VALUE is a constant defined in stm32l4xx_hal_conf.h file (default value 8 MHz), user has to ensure that HSE_VALUE is same as the real frequency of the crystal used. Otherwise, this function may have wrong result.
The result of this function could be not correct when using fractional value for HSE crystal.
This function can be used by the user application to compute the baudrate for the communication peripherals or configure other parameters.
Each time SYSCLK changes, this function must be called to update the right SYSCLK value. Otherwise, any configuration based on this function will be incorrect.
Return values
SYSCLKfrequency

Definition at line 1346 of file stm32l4xx_hal_rcc.c.

1347 {
1348  uint32_t msirange = 0U, sysclockfreq = 0U;
1349  uint32_t pllvco, pllsource, pllr, pllm; /* no init needed */
1350  uint32_t sysclk_source, pll_oscsource;
1351 
1352  sysclk_source = __HAL_RCC_GET_SYSCLK_SOURCE();
1353  pll_oscsource = __HAL_RCC_GET_PLL_OSCSOURCE();
1354 
1355  if((sysclk_source == RCC_CFGR_SWS_MSI) ||
1356  ((sysclk_source == RCC_CFGR_SWS_PLL) && (pll_oscsource == RCC_PLLSOURCE_MSI)))
1357  {
1358  /* MSI or PLL with MSI source used as system clock source */
1359 
1360  /* Get SYSCLK source */
1361  if(READ_BIT(RCC->CR, RCC_CR_MSIRGSEL) == 0U)
1362  { /* MSISRANGE from RCC_CSR applies */
1363  msirange = READ_BIT(RCC->CSR, RCC_CSR_MSISRANGE) >> RCC_CSR_MSISRANGE_Pos;
1364  }
1365  else
1366  { /* MSIRANGE from RCC_CR applies */
1367  msirange = READ_BIT(RCC->CR, RCC_CR_MSIRANGE) >> RCC_CR_MSIRANGE_Pos;
1368  }
1369  /*MSI frequency range in HZ*/
1370  msirange = MSIRangeTable[msirange];
1371 
1372  if(sysclk_source == RCC_CFGR_SWS_MSI)
1373  {
1374  /* MSI used as system clock source */
1375  sysclockfreq = msirange;
1376  }
1377  }
1378  else if(sysclk_source == RCC_CFGR_SWS_HSI)
1379  {
1380  /* HSI used as system clock source */
1381  sysclockfreq = HSI_VALUE;
1382  }
1383  else if(sysclk_source == RCC_CFGR_SWS_HSE)
1384  {
1385  /* HSE used as system clock source */
1386  sysclockfreq = HSE_VALUE;
1387  }
1388  else
1389  {
1390  /* unexpected case: sysclockfreq at 0 */
1391  }
1392 
1393  if(sysclk_source == RCC_CFGR_SWS_PLL)
1394  {
1395  /* PLL used as system clock source */
1396 
1397  /* PLL_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE) * PLLN / PLLM
1398  SYSCLK = PLL_VCO / PLLR
1399  */
1400  pllsource = READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC);
1401 
1402  switch (pllsource)
1403  {
1404  case RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */
1405  pllvco = HSI_VALUE;
1406  break;
1407 
1408  case RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */
1409  pllvco = HSE_VALUE;
1410  break;
1411 
1412  case RCC_PLLSOURCE_MSI: /* MSI used as PLL clock source */
1413  default:
1414  pllvco = msirange;
1415  break;
1416  }
1417  pllm = (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1U ;
1418  pllvco = (pllvco * (READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)) / pllm;
1419  pllr = ((READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1U ) * 2U;
1420  sysclockfreq = pllvco / pllr;
1421  }
1422 
1423  return sysclockfreq;
1424 }

◆ HAL_RCC_MCOConfig()

void HAL_RCC_MCOConfig ( uint32_t  RCC_MCOx,
uint32_t  RCC_MCOSource,
uint32_t  RCC_MCODiv 
)

Select the clock source to output on MCO pin(PA8).

Note
PA8 should be configured in alternate function mode.
Parameters
RCC_MCOxspecifies the output direction for the clock source. For STM32L4xx family this parameter can have only one value:
  • RCC_MCO1 Clock source to output on MCO1 pin(PA8).
RCC_MCOSourcespecifies the clock source to output. This parameter can be one of the following values:
  • RCC_MCO1SOURCE_NOCLOCK MCO output disabled, no clock on MCO
  • RCC_MCO1SOURCE_SYSCLK system clock selected as MCO source
  • RCC_MCO1SOURCE_MSI MSI clock selected as MCO source
  • RCC_MCO1SOURCE_HSI HSI clock selected as MCO source
  • RCC_MCO1SOURCE_HSE HSE clock selected as MCO sourcee
  • RCC_MCO1SOURCE_PLLCLK main PLL clock selected as MCO source
  • RCC_MCO1SOURCE_LSI LSI clock selected as MCO source
  • RCC_MCO1SOURCE_LSE LSE clock selected as MCO source
RCC_MCODivspecifies the MCO prescaler. This parameter can be one of the following values:
  • RCC_MCODIV_1 no division applied to MCO clock
  • RCC_MCODIV_2 division by 2 applied to MCO clock
  • RCC_MCODIV_4 division by 4 applied to MCO clock
  • RCC_MCODIV_8 division by 8 applied to MCO clock
  • RCC_MCODIV_16 division by 16 applied to MCO clock
Return values
None

Definition at line 1287 of file stm32l4xx_hal_rcc.c.

1288 {
1289  GPIO_InitTypeDef GPIO_InitStruct;
1290 
1291  /* Check the parameters */
1292  assert_param(IS_RCC_MCO(RCC_MCOx));
1293  assert_param(IS_RCC_MCODIV(RCC_MCODiv));
1294  assert_param(IS_RCC_MCO1SOURCE(RCC_MCOSource));
1295 
1296  /* Prevent unused argument(s) compilation warning if no assert_param check */
1297  UNUSED(RCC_MCOx);
1298 
1299  /* MCO Clock Enable */
1300  __MCO1_CLK_ENABLE();
1301 
1302  /* Configue the MCO1 pin in alternate function mode */
1303  GPIO_InitStruct.Pin = MCO1_PIN;
1304  GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1305  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
1306  GPIO_InitStruct.Pull = GPIO_NOPULL;
1307  GPIO_InitStruct.Alternate = GPIO_AF0_MCO;
1308  HAL_GPIO_Init(MCO1_GPIO_PORT, &GPIO_InitStruct);
1309 
1310  /* Mask MCOSEL[] and MCOPRE[] bits then set MCO1 clock source and prescaler */
1311  MODIFY_REG(RCC->CFGR, (RCC_CFGR_MCOSEL | RCC_CFGR_MCOPRE), (RCC_MCOSource | RCC_MCODiv ));
1312 }
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
Initialize the GPIOx peripheral according to the specified parameters in the GPIO_Init.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_RCC_NMI_IRQHandler()

void HAL_RCC_NMI_IRQHandler ( void  )

Handle the RCC Clock Security System interrupt request.

Note
This API should be called under the NMI_Handler().
Return values
None

Definition at line 1674 of file stm32l4xx_hal_rcc.c.

1675 {
1676  /* Check RCC CSSF interrupt flag */
1677  if(__HAL_RCC_GET_IT(RCC_IT_CSS))
1678  {
1679  /* RCC Clock Security System interrupt user callback */
1681 
1682  /* Clear RCC CSS pending bit */
1683  __HAL_RCC_CLEAR_IT(RCC_IT_CSS);
1684  }
1685 }
void HAL_RCC_CSSCallback(void)
RCC Clock Security System interrupt callback.