STM32时钟系统详解

需积分: 7 0 下载量 162 浏览量 更新于2024-09-12 收藏 36KB DOC 举报
"这篇文档是关于f4系列微控制器的学习资料,特别适合初学者使用。文档详细阐述了STM32F4的系统时钟配置及其对各个模块的影响,包括AHB和APB总线的时钟分频以及定时器的倍频设置。此外,还提到了连接在APB1和APB2上的外设及其对时钟的需求。" 在STM32F4微控制器中,系统时钟SYSCLK是核心部分,它决定了大部分模块的工作速度。SYSCLK可以由PLL(锁相环)输出、HSI(高速内部振荡器)或HSE(高速外部晶振)提供,最高可达72MHz。这个时钟通过AHB(高级高性能总线)分频器进行分频,以适应不同的系统需求。AHB分频器提供了9种分频选项,范围从1到512。 AHB分频器产生的HCLK时钟供给AHB总线、处理器内核、内存以及DMA使用。此外,它还为Cortex-M4系统的系统定时器提供经过8分频后的时钟,并直接为Cortex的空闲运行时钟FCLK供电。同时,AHB时钟也分别馈送到两个APB(先进外围总线)分频器:APB1和APB2。 APB1分频器有5种分频选择,其输出的PCLK1时钟供APB1上的外设使用,如电源接口、备份接口、CAN、USB、I2C、UART、SPI、窗口看门狗以及定时器2、3、4等。其中,定时器2、3、4的时钟可以通过倍频器进行1或2倍的提升。USB模块虽然需要48MHz的时钟,但该时钟仅用于串行接口引擎,其工作时钟是由APB1提供的。 APB2分频器同样有5种分频选项,产生的PCLK2时钟用于APB2上的外设,如UART1、SPI1、Timer1、ADC、所有普通IO口和第二功能IO口。值得注意的是,APB2分频器还会为定时器1的倍频器提供时钟,以及一个输出供ADC分频器,ADC的分频器可以设置为2、4、6或8分频。 在使用STM32F4的任何模块之前,都需要确保相应的时钟已经被正确地开启,这是通过访问RCC(复用重配置控制器)寄存器来完成的。RCC寄存器包含了一系列控制位,用于启用或禁用不同模块的时钟,确保系统时序的正确性。在编程过程中,理解和配置这些时钟设置是至关重要的,因为它们直接影响着CPU、总线和外设的运行效率和同步性。