地点:南图
这部分的内容是整个STM32学习知识的核心,不管是什么微控制器处理器,时钟系统都是其核心类似于人之心脏,因此学好理解这一章节至关重要。
为了便于理解这一系统,将从以下几个层次来讲。(忘了是在哪儿看到的这么一句话,当你能对某人解释清楚某一部分知识,那么说明你已经完全掌握了它) 。
1、第一个层次:硬件
STM32的时钟源 可以有以下5个来源:
(1)HSI高速的内部时钟
8M的RC震荡时钟,相对于晶体振荡器精确度差些,因此在需要精确频率或定时的应用时,应选用HSE作为系统时钟。这个是在STM32内部的,在没有外接晶体振荡器的时候,系统的时钟就会用此作为时钟源。
(2)HSE高速的外部时钟
允许外接4~16M频率的晶体振荡器 ,相比于内部的RC晶体振荡器精确度高些。通常最小系统板上接的椭圆形扁平的就是8M的晶体谐振器。
(3)LSI低速的内部时钟
因为现阶段不会用到,所以没细看。大致功能是作为RTC的时钟源。
(4)LSE低速外部时钟
同(3)。
(5)外部的输入时钟
可以使用其他单片器或时钟电路的输入方波作为时钟源,接入的引脚是OSC_IN,输入的必须是占空比为50%的方波或三角波。
2、第二层次:时钟系统内的时钟源细分
这部分的分析从源头出发分析,着重分析系统时钟SYSCLK的来源。
(1)sysclk的时钟来源。(SYSCLK允许的最大频率是72MHZ)
有三个来源:
HSE:提供8MHZ频率给SYSCLK
HSI:同HSE
PLL :PLL是第二级的时钟源,他的时钟来源是HSE(HSE/2、HSE)或HSI(HSI/2),输出的频率是倍频之后的频率。
这部分的内容重点是SYSCLK的来源,SYSCLK的作用是直接作为外设和AHB总线的时钟源(这样表述好像有问题)。
(2) AHB时钟源(对应时钟频率HCLK)
来源是SYSCLK分频之后,因此频率最大的情况是1分频时即72MHz。AHB的作用是作为APB1和APB2的时钟源,以及8分频后作为Cortex的外部时钟(Systick)
(3)APB1低速时钟总线
APB1低速时钟总线的作用是作为挂载在上面的外设的时钟源,最大36MHz。
(4)APB2高速时钟总线
最大72Mhz。
3、重要外设时钟源分析
(1)定时器
高级定时器TIM1、TIM8是挂载在APB2上的,其他定时器TIM2~TIM7挂载在APB1上。值得注意的是定时器的时钟频率取决于分频系数,当分频系数为1时,则其时钟频率和相应总线频率相等,其他分频系数,时钟频率为总线频率的2倍。