STM32L4xx_HAL_Driver  1.14.0
RCC Private functions

Functions

uint32_t RCC_GetSystemClockFreq (void)
 Return SYSTEM clock frequency. More...
 
uint32_t RCC_GetHCLKClockFreq (uint32_t SYSCLK_Frequency)
 Return HCLK clock frequency. More...
 
uint32_t RCC_GetPCLK1ClockFreq (uint32_t HCLK_Frequency)
 Return PCLK1 clock frequency. More...
 
uint32_t RCC_GetPCLK2ClockFreq (uint32_t HCLK_Frequency)
 Return PCLK2 clock frequency. More...
 
uint32_t RCC_PLL_GetFreqDomain_SYS (void)
 Return PLL clock frequency used for system domain. More...
 
uint32_t RCC_PLL_GetFreqDomain_SAI (void)
 Return PLL clock frequency used for SAI domain. More...
 
uint32_t RCC_PLL_GetFreqDomain_48M (void)
 Return PLL clock frequency used for 48 MHz domain. More...
 
uint32_t RCC_PLLSAI1_GetFreqDomain_SAI (void)
 Return PLLSAI1 clock frequency used for SAI domain. More...
 
uint32_t RCC_PLLSAI1_GetFreqDomain_48M (void)
 Return PLLSAI1 clock frequency used for 48Mhz domain. More...
 
uint32_t RCC_PLLSAI1_GetFreqDomain_ADC (void)
 Return PLLSAI1 clock frequency used for ADC domain. More...
 
uint32_t RCC_PLLSAI2_GetFreqDomain_SAI (void)
 Return PLLSAI2 clock frequency used for SAI domain. More...
 
uint32_t RCC_PLLSAI2_GetFreqDomain_LTDC (void)
 Return PLLSAI2 clock frequency used for LTDC domain. More...
 
uint32_t RCC_PLLSAI2_GetFreqDomain_ADC (void)
 Return PLLSAI2 clock frequency used for ADC domain. More...
 
uint32_t RCC_PLLSAI2_GetFreqDomain_DSI (void)
 Return PLL clock frequency used for DSI clock. More...
 

Detailed Description

Function Documentation

◆ RCC_GetHCLKClockFreq()

uint32_t RCC_GetHCLKClockFreq ( uint32_t  SYSCLK_Frequency)

Return HCLK clock frequency.

Parameters
SYSCLK_FrequencySYSCLK clock frequency
Return values
HCLKclock frequency (in Hz)

Definition at line 1500 of file stm32l4xx_ll_rcc.c.

1501 {
1502  /* HCLK clock frequency */
1503  return __LL_RCC_CALC_HCLK_FREQ(SYSCLK_Frequency, LL_RCC_GetAHBPrescaler());
1504 }
__STATIC_INLINE uint32_t LL_RCC_GetAHBPrescaler(void)
Get AHB prescaler CFGR HPRE LL_RCC_GetAHBPrescaler.

◆ RCC_GetPCLK1ClockFreq()

uint32_t RCC_GetPCLK1ClockFreq ( uint32_t  HCLK_Frequency)

Return PCLK1 clock frequency.

Parameters
HCLK_FrequencyHCLK clock frequency
Return values
PCLK1clock frequency (in Hz)

Definition at line 1511 of file stm32l4xx_ll_rcc.c.

1512 {
1513  /* PCLK1 clock frequency */
1514  return __LL_RCC_CALC_PCLK1_FREQ(HCLK_Frequency, LL_RCC_GetAPB1Prescaler());
1515 }
__STATIC_INLINE uint32_t LL_RCC_GetAPB1Prescaler(void)
Get APB1 prescaler CFGR PPRE1 LL_RCC_GetAPB1Prescaler.

◆ RCC_GetPCLK2ClockFreq()

uint32_t RCC_GetPCLK2ClockFreq ( uint32_t  HCLK_Frequency)

Return PCLK2 clock frequency.

Parameters
HCLK_FrequencyHCLK clock frequency
Return values
PCLK2clock frequency (in Hz)

Definition at line 1522 of file stm32l4xx_ll_rcc.c.

1523 {
1524  /* PCLK2 clock frequency */
1525  return __LL_RCC_CALC_PCLK2_FREQ(HCLK_Frequency, LL_RCC_GetAPB2Prescaler());
1526 }
__STATIC_INLINE uint32_t LL_RCC_GetAPB2Prescaler(void)
Get APB2 prescaler CFGR PPRE2 LL_RCC_GetAPB2Prescaler.

◆ RCC_GetSystemClockFreq()

uint32_t RCC_GetSystemClockFreq ( void  )

Return SYSTEM clock frequency.

Return values
SYSTEMclock frequency (in Hz)

Definition at line 1458 of file stm32l4xx_ll_rcc.c.

1459 {
1460  uint32_t frequency;
1461 
1462  /* Get SYSCLK source -------------------------------------------------------*/
1463  switch (LL_RCC_GetSysClkSource())
1464  {
1465  case LL_RCC_SYS_CLKSOURCE_STATUS_MSI: /* MSI used as system clock source */
1466  frequency = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1467  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1470  break;
1471 
1472  case LL_RCC_SYS_CLKSOURCE_STATUS_HSI: /* HSI used as system clock source */
1473  frequency = HSI_VALUE;
1474  break;
1475 
1476  case LL_RCC_SYS_CLKSOURCE_STATUS_HSE: /* HSE used as system clock source */
1477  frequency = HSE_VALUE;
1478  break;
1479 
1480  case LL_RCC_SYS_CLKSOURCE_STATUS_PLL: /* PLL used as system clock source */
1481  frequency = RCC_PLL_GetFreqDomain_SYS();
1482  break;
1483 
1484  default:
1485  frequency = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1486  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1489  break;
1490  }
1491 
1492  return frequency;
1493 }
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_GetSysClkSource(void)
Get the system clock source CFGR SWS LL_RCC_GetSysClkSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...
uint32_t RCC_PLL_GetFreqDomain_SYS(void)
Return PLL clock frequency used for system domain.

◆ RCC_PLL_GetFreqDomain_48M()

uint32_t RCC_PLL_GetFreqDomain_48M ( void  )

Return PLL clock frequency used for 48 MHz domain.

Return values
PLLclock frequency (in Hz)

Definition at line 1616 of file stm32l4xx_ll_rcc.c.

1617 {
1618  uint32_t pllinputfreq, pllsource;
1619 
1620  /* PLL_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLM) * PLLN
1621  48M Domain clock = PLL_VCO / PLLQ
1622  */
1623  pllsource = LL_RCC_PLL_GetMainSource();
1624 
1625  switch (pllsource)
1626  {
1627  case LL_RCC_PLLSOURCE_MSI: /* MSI used as PLL clock source */
1628  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1629  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1632  break;
1633 
1634  case LL_RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */
1635  pllinputfreq = HSI_VALUE;
1636  break;
1637 
1638  case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */
1639  pllinputfreq = HSE_VALUE;
1640  break;
1641 
1642  default:
1643  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1644  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1647  break;
1648  }
1649  return __LL_RCC_CALC_PLLCLK_48M_FREQ(pllinputfreq, LL_RCC_PLL_GetDivider(),
1651 }
__STATIC_INLINE uint32_t LL_RCC_PLL_GetQ(void)
Get Main PLL division factor for PLLQ.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
Get Division factor for the main PLL and other PLL PLLCFGR PLLM LL_RCC_PLL_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...
__STATIC_INLINE uint32_t LL_RCC_PLL_GetN(void)
Get Main PLL multiplication factor for VCO PLLCFGR PLLN LL_RCC_PLL_GetN.

◆ RCC_PLL_GetFreqDomain_SAI()

uint32_t RCC_PLL_GetFreqDomain_SAI ( void  )

Return PLL clock frequency used for SAI domain.

Return values
PLLclock frequency (in Hz)

Definition at line 1574 of file stm32l4xx_ll_rcc.c.

1575 {
1576  uint32_t pllinputfreq, pllsource;
1577 
1578  /* PLL_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE / PLLM) * PLLN
1579  SAI Domain clock = PLL_VCO / PLLP
1580  */
1581  pllsource = LL_RCC_PLL_GetMainSource();
1582 
1583  switch (pllsource)
1584  {
1585  case LL_RCC_PLLSOURCE_MSI: /* MSI used as PLL clock source */
1586  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1587  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1590  break;
1591 
1592  case LL_RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */
1593  pllinputfreq = HSI_VALUE;
1594  break;
1595 
1596  case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */
1597  pllinputfreq = HSE_VALUE;
1598  break;
1599 
1600  default:
1601  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1602  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1605  break;
1606  }
1607  return __LL_RCC_CALC_PLLCLK_SAI_FREQ(pllinputfreq, LL_RCC_PLL_GetDivider(),
1609 }
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
Get Division factor for the main PLL and other PLL PLLCFGR PLLM LL_RCC_PLL_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_PLL_GetP(void)
Get Main PLL division factor for PLLP.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...
__STATIC_INLINE uint32_t LL_RCC_PLL_GetN(void)
Get Main PLL multiplication factor for VCO PLLCFGR PLLN LL_RCC_PLL_GetN.

◆ RCC_PLL_GetFreqDomain_SYS()

uint32_t RCC_PLL_GetFreqDomain_SYS ( void  )

Return PLL clock frequency used for system domain.

Return values
PLLclock frequency (in Hz)

Definition at line 1532 of file stm32l4xx_ll_rcc.c.

1533 {
1534  uint32_t pllinputfreq, pllsource;
1535 
1536  /* PLL_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLM) * PLLN
1537  SYSCLK = PLL_VCO / PLLR
1538  */
1539  pllsource = LL_RCC_PLL_GetMainSource();
1540 
1541  switch (pllsource)
1542  {
1543  case LL_RCC_PLLSOURCE_MSI: /* MSI used as PLL clock source */
1544  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1545  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1548  break;
1549 
1550  case LL_RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */
1551  pllinputfreq = HSI_VALUE;
1552  break;
1553 
1554  case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */
1555  pllinputfreq = HSE_VALUE;
1556  break;
1557 
1558  default:
1559  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1560  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1563  break;
1564  }
1565  return __LL_RCC_CALC_PLLCLK_FREQ(pllinputfreq, LL_RCC_PLL_GetDivider(),
1567 }
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
Get Division factor for the main PLL and other PLL PLLCFGR PLLM LL_RCC_PLL_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...
__STATIC_INLINE uint32_t LL_RCC_PLL_GetN(void)
Get Main PLL multiplication factor for VCO PLLCFGR PLLN LL_RCC_PLL_GetN.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetR(void)
Get Main PLL division factor for PLLR.

◆ RCC_PLLSAI1_GetFreqDomain_48M()

uint32_t RCC_PLLSAI1_GetFreqDomain_48M ( void  )

Return PLLSAI1 clock frequency used for 48Mhz domain.

Return values
PLLSAI1clock frequency (in Hz)

Definition at line 1744 of file stm32l4xx_ll_rcc.c.

1745 {
1746  uint32_t pllinputfreq, pllsource;
1747 
1748 #if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT)
1749  /* PLLSAI1_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLSAI1M) * PLLSAI1N */
1750 #else
1751  /* PLLSAI1_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLM) * PLLSAI1N */
1752 #endif
1753  /* 48M Domain clock = PLLSAI1_VCO / PLLSAI1Q */
1754  pllsource = LL_RCC_PLL_GetMainSource();
1755 
1756  switch (pllsource)
1757  {
1758  case LL_RCC_PLLSOURCE_MSI: /* MSI used as PLLSAI1 clock source */
1759  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1760  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1763  break;
1764 
1765  case LL_RCC_PLLSOURCE_HSI: /* HSI used as PLLSAI1 clock source */
1766  pllinputfreq = HSI_VALUE;
1767  break;
1768 
1769  case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLLSAI1 clock source */
1770  pllinputfreq = HSE_VALUE;
1771  break;
1772 
1773  default:
1774  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1775  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1778  break;
1779  }
1780  return __LL_RCC_CALC_PLLSAI1_48M_FREQ(pllinputfreq, LL_RCC_PLL_GetDivider(),
1782 }
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_GetQ(void)
Get SAI1PLL division factor for PLLSAI1Q.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
Get Division factor for the main PLL and other PLL PLLCFGR PLLM LL_RCC_PLL_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_GetN(void)
Get SAI1PLL multiplication factor for VCO PLLSAI1CFGR PLLSAI1N LL_RCC_PLLSAI1_GetN.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...

◆ RCC_PLLSAI1_GetFreqDomain_ADC()

uint32_t RCC_PLLSAI1_GetFreqDomain_ADC ( void  )

Return PLLSAI1 clock frequency used for ADC domain.

Return values
PLLSAI1clock frequency (in Hz)

Definition at line 1788 of file stm32l4xx_ll_rcc.c.

1789 {
1790  uint32_t pllinputfreq, pllsource;
1791 
1792 #if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT)
1793  /* PLLSAI1_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLSAI1M) * PLLSAI1N */
1794 #else
1795  /* PLLSAI1_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLM) * PLLSAI1N */
1796 #endif
1797  /* 48M Domain clock = PLLSAI1_VCO / PLLSAI1R */
1798  pllsource = LL_RCC_PLL_GetMainSource();
1799 
1800  switch (pllsource)
1801  {
1802  case LL_RCC_PLLSOURCE_MSI: /* MSI used as PLLSAI1 clock source */
1803  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1804  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1807  break;
1808 
1809  case LL_RCC_PLLSOURCE_HSI: /* HSI used as PLLSAI1 clock source */
1810  pllinputfreq = HSI_VALUE;
1811  break;
1812 
1813  case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLLSAI1 clock source */
1814  pllinputfreq = HSE_VALUE;
1815  break;
1816 
1817  default:
1818  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1819  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1822  break;
1823  }
1824  return __LL_RCC_CALC_PLLSAI1_ADC_FREQ(pllinputfreq, LL_RCC_PLL_GetDivider(),
1826 }
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_GetR(void)
Get PLLSAI1 division factor for PLLSAIR.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
Get Division factor for the main PLL and other PLL PLLCFGR PLLM LL_RCC_PLL_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_GetN(void)
Get SAI1PLL multiplication factor for VCO PLLSAI1CFGR PLLSAI1N LL_RCC_PLLSAI1_GetN.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...

◆ RCC_PLLSAI1_GetFreqDomain_SAI()

uint32_t RCC_PLLSAI1_GetFreqDomain_SAI ( void  )

Return PLLSAI1 clock frequency used for SAI domain.

Return values
PLLSAI1clock frequency (in Hz)

Definition at line 1700 of file stm32l4xx_ll_rcc.c.

1701 {
1702  uint32_t pllinputfreq, pllsource;
1703 
1704 #if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT)
1705  /* PLLSAI1_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLSAI1M) * PLLSAI1N */
1706 #else
1707  /* PLLSAI1_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLM) * PLLSAI1N */
1708 #endif
1709  /* SAI Domain clock = PLLSAI1_VCO / PLLSAI1P */
1710  pllsource = LL_RCC_PLL_GetMainSource();
1711 
1712  switch (pllsource)
1713  {
1714  case LL_RCC_PLLSOURCE_MSI: /* MSI used as PLLSAI1 clock source */
1715  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1716  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1719  break;
1720 
1721  case LL_RCC_PLLSOURCE_HSI: /* HSI used as PLLSAI1 clock source */
1722  pllinputfreq = HSI_VALUE;
1723  break;
1724 
1725  case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLLSAI1 clock source */
1726  pllinputfreq = HSE_VALUE;
1727  break;
1728 
1729  default:
1730  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1731  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1734  break;
1735  }
1736  return __LL_RCC_CALC_PLLSAI1_SAI_FREQ(pllinputfreq, LL_RCC_PLL_GetDivider(),
1738 }
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_GetP(void)
Get SAI1PLL division factor for PLLSAI1P.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
Get Division factor for the main PLL and other PLL PLLCFGR PLLM LL_RCC_PLL_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_GetN(void)
Get SAI1PLL multiplication factor for VCO PLLSAI1CFGR PLLSAI1N LL_RCC_PLLSAI1_GetN.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...

◆ RCC_PLLSAI2_GetFreqDomain_ADC()

uint32_t RCC_PLLSAI2_GetFreqDomain_ADC ( void  )

Return PLLSAI2 clock frequency used for ADC domain.

Return values
PLLSAI2clock frequency (in Hz)

Definition at line 1927 of file stm32l4xx_ll_rcc.c.

1928 {
1929  uint32_t pllinputfreq = 0U, pllsource = 0U;
1930 
1931  /* PLLSAI2_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLM) * PLLSAI2N */
1932  /* 48M Domain clock = PLLSAI2_VCO / PLLSAI2R */
1933  pllsource = LL_RCC_PLL_GetMainSource();
1934 
1935  switch (pllsource)
1936  {
1937  case LL_RCC_PLLSOURCE_MSI: /* MSI used as PLLSAI2 clock source */
1938  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1939  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1942  break;
1943 
1944  case LL_RCC_PLLSOURCE_HSI: /* HSI used as PLLSAI2 clock source */
1945  pllinputfreq = HSI_VALUE;
1946  break;
1947 
1948  case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLLSAI2 clock source */
1949  pllinputfreq = HSE_VALUE;
1950  break;
1951 
1952  default:
1953  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1954  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1957  break;
1958  }
1959  return __LL_RCC_CALC_PLLSAI2_ADC_FREQ(pllinputfreq, LL_RCC_PLL_GetDivider(),
1961 }
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetN(void)
Get SAI2PLL multiplication factor for VCO PLLSAI2CFGR PLLSAI2N LL_RCC_PLLSAI2_GetN.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
Get Division factor for the main PLL and other PLL PLLCFGR PLLM LL_RCC_PLL_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetR(void)
Get SAI2PLL division factor for PLLSAI2R.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...

◆ RCC_PLLSAI2_GetFreqDomain_DSI()

uint32_t RCC_PLLSAI2_GetFreqDomain_DSI ( void  )

Return PLL clock frequency used for DSI clock.

Return values
PLLclock frequency (in Hz)

Definition at line 1657 of file stm32l4xx_ll_rcc.c.

1658 {
1659  uint32_t pllinputfreq, pllsource;
1660 
1661  /* PLLSAI2_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLSAI2M) * PLLSAI2N */
1662  /* DSICLK = PLLSAI2_VCO / PLLSAI2R */
1663  pllsource = LL_RCC_PLL_GetMainSource();
1664 
1665  switch (pllsource)
1666  {
1667  case LL_RCC_PLLSOURCE_MSI: /* MSI used as PLLSAI2 clock source */
1668  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1669  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1672  break;
1673 
1674  case LL_RCC_PLLSOURCE_HSI: /* HSI used as PLLSAI2 clock source */
1675  pllinputfreq = HSI_VALUE;
1676  break;
1677 
1678  case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLLSAI2 clock source */
1679  pllinputfreq = HSE_VALUE;
1680  break;
1681 
1682  default:
1683  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1684  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1687  break;
1688  }
1689 
1690  return __LL_RCC_CALC_PLLSAI2_DSI_FREQ(pllinputfreq, LL_RCC_PLLSAI2_GetDivider(),
1692 }
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetN(void)
Get SAI2PLL multiplication factor for VCO PLLSAI2CFGR PLLSAI2N LL_RCC_PLLSAI2_GetN.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetDivider(void)
Get Division factor for the PLLSAI2 PLLSAI2CFGR PLLSAI2M LL_RCC_PLLSAI2_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetR(void)
Get SAI2PLL division factor for PLLSAI2R.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...

◆ RCC_PLLSAI2_GetFreqDomain_LTDC()

uint32_t RCC_PLLSAI2_GetFreqDomain_LTDC ( void  )

Return PLLSAI2 clock frequency used for LTDC domain.

Return values
PLLSAI2clock frequency (in Hz)

Definition at line 1884 of file stm32l4xx_ll_rcc.c.

1885 {
1886  uint32_t pllinputfreq, pllsource;
1887 
1888  /* PLLSAI2_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLSAI2M) * PLLSAI2N */
1889  /* LTDC Domain clock = (PLLSAI2_VCO / PLLSAI2R) / PLLSAI2DIVR */
1890  pllsource = LL_RCC_PLL_GetMainSource();
1891 
1892  switch (pllsource)
1893  {
1894  case LL_RCC_PLLSOURCE_MSI: /* MSI used as PLLSAI2 clock source */
1895  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1896  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1899  break;
1900 
1901  case LL_RCC_PLLSOURCE_HSI: /* HSI used as PLLSAI2 clock source */
1902  pllinputfreq = HSI_VALUE;
1903  break;
1904 
1905  case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLLSAI2 clock source */
1906  pllinputfreq = HSE_VALUE;
1907  break;
1908 
1909  default:
1910  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1911  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1914  break;
1915  }
1916 
1917  return __LL_RCC_CALC_PLLSAI2_LTDC_FREQ(pllinputfreq, LL_RCC_PLLSAI2_GetDivider(),
1919 }
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetN(void)
Get SAI2PLL multiplication factor for VCO PLLSAI2CFGR PLLSAI2N LL_RCC_PLLSAI2_GetN.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetDivider(void)
Get Division factor for the PLLSAI2 PLLSAI2CFGR PLLSAI2M LL_RCC_PLLSAI2_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetR(void)
Get SAI2PLL division factor for PLLSAI2R.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetDIVR(void)
Get PLLSAI2 division factor for PLLSAI2DIVR.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...

◆ RCC_PLLSAI2_GetFreqDomain_SAI()

uint32_t RCC_PLLSAI2_GetFreqDomain_SAI ( void  )

Return PLLSAI2 clock frequency used for SAI domain.

Return values
PLLSAI2clock frequency (in Hz)

Definition at line 1834 of file stm32l4xx_ll_rcc.c.

1835 {
1836  uint32_t pllinputfreq, pllsource;
1837 
1838 #if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT)
1839  /* PLLSAI2_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLSAI2M) * PLLSAI2N */
1840 #else
1841  /* PLLSAI2_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLM) * PLLSAI2N */
1842 #endif
1843  /* SAI Domain clock = PLLSAI2_VCO / PLLSAI2P */
1844  pllsource = LL_RCC_PLL_GetMainSource();
1845 
1846  switch (pllsource)
1847  {
1848  case LL_RCC_PLLSOURCE_MSI: /* MSI used as PLLSAI2 clock source */
1849  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1850  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1853  break;
1854 
1855  case LL_RCC_PLLSOURCE_HSI: /* HSI used as PLLSAI2 clock source */
1856  pllinputfreq = HSI_VALUE;
1857  break;
1858 
1859  case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLLSAI2 clock source */
1860  pllinputfreq = HSE_VALUE;
1861  break;
1862 
1863  default:
1864  pllinputfreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
1865  ((LL_RCC_MSI_IsEnabledRangeSelect() != 0U) ?
1868  break;
1869  }
1870 #if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT)
1871  return __LL_RCC_CALC_PLLSAI2_SAI_FREQ(pllinputfreq, LL_RCC_PLLSAI2_GetDivider(),
1873 #else
1874  return __LL_RCC_CALC_PLLSAI2_SAI_FREQ(pllinputfreq, LL_RCC_PLL_GetDivider(),
1876 #endif
1877 }
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetN(void)
Get SAI2PLL multiplication factor for VCO PLLSAI2CFGR PLLSAI2N LL_RCC_PLLSAI2_GetN.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetDivider(void)
Get Division factor for the PLLSAI2 PLLSAI2CFGR PLLSAI2M LL_RCC_PLLSAI2_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
Get Division factor for the main PLL and other PLL PLLCFGR PLLM LL_RCC_PLL_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetP(void)
Get SAI2PLL division factor for PLLSAI2P.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...