STM32时钟系统详解:从HSI到PLL

需积分: 9 1 下载量 186 浏览量 更新于2024-09-11 收藏 68KB DOC 举报
"STM32学习笔记" STM32是一款基于ARM Cortex-M内核的微控制器,广泛应用于嵌入式系统设计。这篇STM32学习笔记主要涵盖了STM32的时钟系统以及SysTick定时器的相关知识。 STM32的时钟系统是其核心功能之一,因为它决定了处理器和其他外设的工作速度。STM32提供了五个不同的时钟源: 1. HSI(High Speed Internal):高速内部振荡器,这是一个RC振荡器,频率通常为8MHz,用于启动和紧急情况下的时钟源。 2. HSE(High Speed External):高速外部时钟,可以是石英或陶瓷谐振器,也可以是外部时钟源,工作在4MHz至16MHz之间,为系统提供更精确的时钟。 3. LSI(Low Speed Internal):低速内部振荡器,频率约为40KHz,常用于独立看门狗IWDG和实时时钟RTC。 4. LSE(Low Speed External):低速外部时钟,通常是32.768kHz的石英晶体,主要用于RTC。 5. PLL(Phase Locked Loop):锁相环,可以将HSI/2、HSE或HSE/2作为输入,进行2至16倍的倍频,但输出不超过72MHz。PLL是提高系统时钟频率的关键,例如为USB模块提供48MHz的时钟。 STM32的系统时钟SYSCLK,是大多数组件运行的基础,可以选择PLL、HSI或HSE作为源。系统时钟的最大频率是72MHz。这个时钟经过AHB分频器分频后,分配给不同的模块: - AHB总线、CPU内核、内存和DMA使用的HCLK时钟。 - 通过8分频后,供给Cortex的系统定时器SysTick。 - 直接提供给Cortex的空闲运行时钟FCLK。 - APB1分频器,其输出分为两部分:一路供给APB1外设(PCLK1,最大36MHz),另一路供给Timer2、3、4的倍频器,倍频器可以选择1或2倍频。 - APB2分频器,同样提供不同分频选项,供给APB2外设。 SysTick定时器是Cortex-M系列处理器内置的一种系统定时器,通常用于实现操作系统或实时任务的时基。它可以配置为周期性中断,用于调度任务或实现软件延时。在STM32中,SysTick定时器的时钟源通常是AHB分频器8分频后的结果。 理解STM32的时钟系统和SysTick定时器是进行高效嵌入式编程的关键,因为它们直接影响程序的执行效率和实时性。正确配置时钟源和分频器可以优化性能并满足不同外设的需求,而SysTick定时器则有助于实现复杂的定时和调度任务。