关于时钟,我们可以将其理解成单片机的心脏,熟悉了解时钟的选择和配置过程能让我们对单片机的理解更深入。
1.时钟源
在STM32F407中,时钟源有五个,分别是LSI(低速内部时钟),LSE(低速外部时钟),HSI(高速内部时钟),HSE(高速外部时钟),PLL(锁相环)。
1.1主时钟源(可驱动系统时钟)
HSI(高速内部时钟)---------------16MHZ
HSE(高速外部时钟)--------------25MHZ
PLL(锁相环)------------------------168MHZ
1.2次级时钟源(可驱动RTC)
LSI(低速内部时钟)----------------32KHZ
LSE(低速外部时钟)---------------32.768KHZ
2.时钟树
这张图很清晰的展示了每个时钟源的作用以及对应的配置过程。五个时钟源中最特殊的莫过于PLL(锁相环),因其本身需要依赖HSI和HSE这两个高速时钟源通过分频倍频的配置后输出对应时钟。
下面我们总结一下每个时钟源的功能:
LSI(低速内部时钟源):(1)驱动看门狗 (2)可以用于驱动RTC
LSE(低速外部时钟源):可以用于驱动RTC
HSI(高速内部时钟源):(1)可以用于驱动系统时钟 (2)可以用于驱动PLL
HSE(高速外部时钟源):(1)可以用于驱动RTC(2)可以用于驱动系统时钟
(3)可以用于驱动PLL
PLL(锁相环):(1)可以用于驱动系统时钟 (2)驱动48MHZ外设时钟
2.1部分概念解释
时钟总线部分的名词解释:
AHB(Advanced High-performance Bus):高级高性能总线。是一种用于嵌入式系统和SoC(System on Chip)的片内总线。它被设计用来提供高性能的数据传输。
APB1(Advanced Peripheral Bus 1):高级外设总线1。通常具有较低的时钟频率,用于连接那些不需要高数据传输速率的外设,例如I2C、SPI、USART等低速串行接口。
APB2(Advanced Peripheral Bus 2):高级外设总线2。具有较高的时钟频率,用于连接那些需要更高数据传输速率的外设,例如ADC(模拟数字转换器)、某些类型的定时器等。
2.2总线的配置
下面我们再看看三条时钟总线的配置过程以及相关时钟因子参数
重点说说AHB,APB1,APB2的时钟配置
AHB(Advanced High-performance Bus):PLL(168MHZ)/1 = 168MHZ
APB1(Advanced Peripheral Bus 1):
(1)APB1总线时钟:AHB(168MHZ)/4 = 42MHZ
(2)APB1外设时钟:APB1(42MHZ)
(3)APB1定时器时钟:APB1(42MHZ)X2 = 84MHZ
APB2(Advanced Peripheral Bus 2):
(1)APB2总线时钟:AHB(168MHZ)/2 = 84MHZ
(2)APB2外设时钟:APB1(84MHZ)
(3)APB2定时器时钟:APB1(42MHZ)X2 = 168MHZ