STM32时钟系统详解:HSI, HSE, LSI, LSE与PLL

需积分: 18 1 下载量 189 浏览量 更新于2024-08-05 收藏 65KB DOCX 举报
"STM32时钟系统是一个复杂的架构,涉及到多个时钟源和分频器,用于满足不同模块的时钟需求。" STM32的时钟系统是其核心功能之一,它决定了微控制器各个部分的工作速度和同步。STM32支持多种时钟源,包括高速内部时钟HSI(8MHz RC振荡器)、高速外部时钟HSE(可为晶振或外部时钟,4MHz至16MHz)、低速内部时钟LSI(40kHz RC振荡器)、低速外部时钟LSE(32.768kHz 晶体)以及锁相环 PLL 输出。PLL 可以将输入时钟源进行倍频,最高可达72MHz,但输出频率受到限制。 LSI 主要用于独立看门狗IWDG和可能作为RTC的时钟源。RTC时钟源还可以通过RTCSEL配置选择LSE或HSE的128分频。全速USB模块需要48MHz的时钟,这只能从PLL输出获取,可通过分频设置达到此频率。 系统时钟SYSCLK是STM32大部分功能的基础,它可以由PLL、HSI或HSE提供,最大频率72MHz。SYSCLK通过AHB分频器分频后供给不同模块,如AHB总线、内核、内存和DMA的HCLK时钟。此外,AHB分频器还为系统定时器提供时钟,为Cortex的空闲运行时钟FCLK提供时钟,以及为APB1分频器提供输入。 APB1分频器进一步对时钟进行分频,以适应低功耗需求,允许1、2、4、8、16分频。APB1总线上的外设如I2C、SPI、GPIO等会根据这些分频后的时钟工作。同时,还有APB2分频器,它通常不包含在提供的部分内容中,但同样起着分配时钟的作用,适用于需要更高时钟速度的外设,如ADC、TIM、USART等,其分频选项与APB1类似。 理解STM32的时钟系统对于优化性能和降低功耗至关重要。开发者需要根据应用需求正确配置时钟源、倍频器和分频器,确保所有模块正常运行并达到预期的速度。在开发过程中,时钟配置的错误可能导致系统不稳定或性能下降,因此需要仔细理解和掌握这些时钟知识点。