PLL和HSE的区别是什么
时间: 2024-01-14 21:17:00 浏览: 22
PLL和HSE是两种不同的电路。
PLL是Phase-Locked Loop的缩写,即锁相环电路。PLL是一种电路,可将输入信号的频率与参考信号的频率进行比较,并将输出信号的频率与参考信号的频率同步。PLL通常用于时钟生成和频率合成。
HSE是High Speed External Oscillator的缩写,即高速外部晶体振荡器。HSE是一种晶体振荡器,用于提供高精度的时钟信号。HSE通常用于需要高精度时钟的应用程序,如高速通信和精密测量。
因此,PLL和HSE是不同类型的电路,用途和功能也有所不同。PLL用于时钟生成和频率合成,而HSE用于提供高精度的时钟信号。
相关问题
HSI、HSE、LSI、LSE、PLL
HSI、HSE、LSI、LSE和PLL是在STM32中使用的五个时钟源[^1][^2]。
1. HSI(High-Speed Internal)是高速内部时钟,它是一个RC振荡器,频率为8MHz。
2. HSE(High-Speed External)是高速外部时钟,可以接石英/陶瓷谐振器,或者接外部时钟源。它的频率范围为4MHz~16MHz。
3. LSI(Low-Speed Internal)是低速内部时钟,它是一个RC振荡器,频率为40kHz。
4. LSE(Low-Speed External)是低速外部时钟,可以接石英/陶瓷谐振器,或者接外部时钟源。它的频率范围为32.768kHz。
5. PLL(Phase-Locked Loop)是锁相环,它可以通过倍频或分频来生成不同的时钟频率。在STM32中,PLL可以用来生成高频时钟,以满足特定的应用需求。
这些时钟源在STM32中用于提供不同的时钟信号,以满足不同的应用需求。例如,HSI和HSE可以用作系统时钟,LSI和LSE可以用作RTC(Real-Time Clock)时钟,而PLL可以用来生成高频时钟信号。
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函数处理错误。