RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC
时间: 2023-06-10 12:06:20 浏览: 217
_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
这段代码是对于STM32芯片的时钟配置代码。其中,RCC表示Reset and Clock Control,用于对系统时钟进行配置;而HSE表示High-Speed External,即高速外部时钟,一般使用晶振等外部时钟源;PLL表示Phase-Locked Loop,即锁相环,用于将输入时钟频率倍频或分频,以获得更高或更低的时钟频率。在这段代码中,将HSE作为PLL的时钟源,将其倍频9倍,最终得到系统时钟频率为HSE*9=72MHz。同时,设置HSE预分频值为1,表示不对外部时钟进行分频。
相关问题
RCC_OscInitTypeDef RCC_OscInitStruct = {0};打开外部高速时钟 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HS
以上代码使用了 STM32 系列芯片的库函数,用于初始化系统时钟。具体来说,代码中通过 RCC_OscInitTypeDef 结构体配置了外部高速时钟的参数,包括使用 HSE 振荡器、设置 HSE 预分频值等;然后又通过 RCC_ClkInitTypeDef 结构体配置了系统时钟的分频系数等参数。最终,使用 HAL_RCC_OscConfig 和 HAL_RCC_ClockConfig 函数将这些参数应用到芯片中,从而初始化系统时钟。
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 4; RCC_OscInitStruct.PLL.PLLN = 168; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; RCC_OscInitStruct.PLL.PLLQ = 4; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); }
这段代码是用于配置STM32的时钟源和PLL(锁相环)的参数。它使用外部高速时钟(HSE)作为时钟源,并使能PLL。PLL的输入时钟频率由HSE经过分频得到,然后通过倍频器(N)将输入时钟频率提高到需要的频率。最后,通过分频器(P)和分频器(Q)将PLL的输出时钟频率分别得到系统时钟(SYSCLK)和USB OTG FS、SDIO和RNG的时钟。
具体地说,代码中的配置如下:
- RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; :将时钟源设置为HSE。
- RCC_OscInitStruct.HSEState = RCC_HSE_ON; :使能HSE。
- RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; :使能PLL。
- RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; :将PLL的输入时钟源设置为HSE。
- RCC_OscInitStruct.PLL.PLLM = 4; :设置PLL的输入时钟分频系数M为4。
- RCC_OscInitStruct.PLL.PLLN = 168; :设置PLL的倍频系数N为168。
- RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; :设置分频器P的分频系数为2,得到SYSCLK。
- RCC_OscInitStruct.PLL.PLLQ = 4; :设置分频器Q的分频系数为4,得到USB OTG FS、SDIO和RNG的时钟。
最后,通过调用HAL_RCC_OscConfig函数来应用这些配置,并检查返回值是否为HAL_OK,如果不是,则调用Error_Handler函数处理错误。
阅读全文