外部时钟配置
学习时使用的是stm32f103系列芯片,文档的时钟树属实不适合新手阅读,STM32cube的功能很强大,时钟树清晰明了:
首先我们要知道,芯片需要一个频率来进行工作,通常选用的是晶振来提供工作频率,很显然不在芯片内部,是外部时钟源。在上图中,我们仅需要关注蓝色框部分,这里我们使用的是HSE时钟源(High Speed Extern--高速外部时钟),根据左边input frequency可知,输入频率设置为8Mhz。这里有同学可能会去想,为什么LSE时钟源是灰色的,因为在这里没有使能LSE低速外部时钟。在这里可以清楚看到LSE是给RTC和IWDG提供时钟频率的,我们没有使用这两个外设,因此我们不需要去配置。
RCC配置如下:
系统时钟配置
由上图可知,系统时钟的来源有三个,分别是PLLCLK、HSE、HSI。pll是预分频器,我们勾选的是PLLCLK,因为可以让我们的输出频率达到最大,可以直接设置系统时钟为72MHz。
*注:我们通常不使用HSI(芯片内部时钟源),因为HSI(高速内部时钟信号)根据温度和环境的情况频率会飘逸不稳定。
外设时钟配置
原理和前面一样,但是注意两点,APB1、APB2时钟的时钟频率有限制,PCLK1是低速时钟,最大频率为36MHz,PCLK2是高速时钟,最大频率为72MHz。