STM32G474xx HAL用户手册
函数
系统
UTILS 导出函数

系统配置函数。 更多...

函数

void LL_SetSystemCoreClock (uint32_t HCLKFrequency)
 此函数直接设置SystemCoreClock CMSIS变量。
ErrorStatus LL_SetFlashLatency (uint32_t HCLKFrequency)
 根据新频率和当前电压范围更新Flash等待状态数。
ErrorStatus LL_PLL_ConfigSystemClock_HSI (LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct)
 此函数以HSI作为PLL时钟源配置最大频率的系统时钟。
ErrorStatus LL_PLL_ConfigSystemClock_HSE (uint32_t HSEFrequency, uint32_t HSEBypass, LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct)
 此函数以HSE作为PLL时钟源配置系统时钟。

详细说明

系统配置函数。

 ===============================================================================
           ##### 系统配置函数 #####
 ===============================================================================
    [..]
         系统、AHB和APB总线时钟配置

         (+) SYSCLK、HCLK、PCLK1和PCLK2的最大频率为
             STM32G4xx的170000000 Hz。
  

函数文档

ErrorStatus LL_PLL_ConfigSystemClock_HSE ( uint32_t  HSEFrequency,
uint32_t  HSEBypass,
LL_UTILS_PLLInitTypeDef UTILS_PLLInitStruct,
LL_UTILS_ClkInitTypeDef UTILS_ClkInitStruct 
)

此函数以HSE作为PLL时钟源配置系统时钟。

注意:
应用程序需要确保PLL已禁用。
函数基于以下公式:
  • PLL输出频率 = (((HSE频率 / PLLM) * PLLN) / PLLR)
  • PLLM:确保VCO输入频率范围为2.66至8 MHz(PLLVCO_input = HSE频率 / PLLM)
  • PLLN:确保VCO输出频率在64至344 MHz之间(PLLVCO_output = PLLVCO_input * PLLN)
  • PLLR:确保达到最大频率170000000 Hz(PLLVCO_output / PLLR)
参数:
HSEFrequency数值范围:Min_Data = 4000000,Max_Data = 48000000
HSEBypass该参数可以是以下值之一:
UTILS_PLLInitStruct指向LL_UTILS_PLLInitTypeDef结构的指针,包含PLL的配置信息。
UTILS_ClkInitStruct指向LL_UTILS_ClkInitTypeDef结构的指针,包含总线预分频器的配置信息。
返回值:
一个ErrorStatus枚举值:
  • SUCCESS:已配置最大频率
  • ERROR:未能配置最大频率

定义于文件stm32g4xx_ll_utils.c第488行

引用了LL_UTILS_ClkInitTypeDef::AHBCLKDividerassert_paramIS_LL_UTILS_HSE_BYPASSIS_LL_UTILS_HSE_FREQUENCYLL_RCC_HSE_DisableBypass()LL_RCC_HSE_Enable()LL_RCC_HSE_EnableBypass()LL_RCC_HSE_IsReady()LL_RCC_PLL_ConfigDomain_SYS()LL_RCC_PLLSOURCE_HSELL_RCC_SetAHBPrescaler()LL_RCC_SYSCLK_DIV_1LL_RCC_SYSCLK_DIV_2LL_SetFlashLatency()LL_SetSystemCoreClock()LL_UTILS_HSEBYPASS_ONLL_UTILS_PLLInitTypeDef::PLLMLL_UTILS_PLLInitTypeDef::PLLNLL_UTILS_PLLInitTypeDef::PLLRUTILS_EnablePLLAndSwitchSystem()UTILS_GetPLLOutputFrequency()UTILS_PLL_IsBusy()

ErrorStatus LL_PLL_ConfigSystemClock_HSI ( LL_UTILS_PLLInitTypeDef UTILS_PLLInitStruct,
LL_UTILS_ClkInitTypeDef UTILS_ClkInitStruct 
)

此函数以HSI作为PLL时钟源配置最大频率的系统时钟。

注意:
应用程序需要确保PLL已禁用。
函数基于以下公式:
  • PLL输出频率 = (((HSI频率 / PLLM) * PLLN) / PLLR)
  • PLLM:确保VCO输入频率范围为2.66至8 MHz(PLLVCO_input = HSI频率 / PLLM)
  • PLLN:确保VCO输出频率在64至344 MHz之间(PLLVCO_output = PLLVCO_input * PLLN)
  • PLLR:确保达到最大频率170000000 Hz(PLLVCO_output / PLLR)
参数:
UTILS_PLLInitStruct指向LL_UTILS_PLLInitTypeDef结构的指针,包含PLL的配置信息。
UTILS_ClkInitStruct指向LL_UTILS_ClkInitTypeDef结构的指针,包含总线预分频器的配置信息。
返回值:
一个ErrorStatus枚举值:
  • SUCCESS:已配置最大频率
  • ERROR:未能配置最大频率

定义于文件stm32g4xx_ll_utils.c第406行

引用了LL_UTILS_ClkInitTypeDef::AHBCLKDividerHSI_VALUELL_RCC_HSI_Enable()LL_RCC_HSI_IsReady()LL_RCC_PLL_ConfigDomain_SYS()LL_RCC_PLLSOURCE_HSILL_RCC_SetAHBPrescaler()LL_RCC_SYSCLK_DIV_1LL_RCC_SYSCLK_DIV_2LL_SetFlashLatency()LL_SetSystemCoreClock()LL_UTILS_PLLInitTypeDef::PLLMLL_UTILS_PLLInitTypeDef::PLLNLL_UTILS_PLLInitTypeDef::PLLRUTILS_EnablePLLAndSwitchSystem()UTILS_GetPLLOutputFrequency()UTILS_PLL_IsBusy()

ErrorStatus LL_SetFlashLatency ( uint32_t  HCLKFrequency)
void LL_SetSystemCoreClock ( uint32_t  HCLKFrequency)

此函数直接设置SystemCoreClock CMSIS变量。

注意:
该变量也可通过SystemCoreClockUpdate函数计算。
参数:
HCLKFrequencyHCLK频率(单位Hz,可通过RCC辅助宏计算)
返回值:

定义于文件stm32g4xx_ll_utils.c第257行

LL_PLL_ConfigSystemClock_HSE()