提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
本章打算讲讲时钟树
时钟,作为一个芯片的核心,我认为只有彻底搞懂时钟,单对于片机才算入门,才可以做项目。
时钟树是什么?时钟树怎么理解?
对于 STM32F1,输入时钟源(Input Clock)主要包括 HSI,HSE,LSI,LSE。
默认使用HSI,包括上一章使用的时钟函数
从时钟频率来分可以分为高速时钟源和低速时钟源,其中 HSI、HSE 高速时钟,LSI 和 LSE 是低速时钟。
从时钟来源可分为外部时钟源和内部时钟源,外部时钟源就是从外部通过接晶振的方式获取时钟源,其中 HSE 和 LSE 是外部时钟源;其他是内部时钟源,芯片上电即可产生,不需要 借助外部电路。
晶体时钟的特点是:成本高、稳定、精确,如果可以首选外部时钟;
时钟逻辑再简化一点:时钟源输入–倍频/分频–时钟输出
对输入时钟源,倍频/分频,时钟输出进行扩充,进行分支,就组成了时钟树
时钟树系统,以AHB(预分频器)为分界,左边为时钟源输入,以F1为例,四个时钟源输入,可以进行选择,再对四个时钟源进行倍频与AHB分频后,再将分频后的频率输出至各个外设时钟,部分外设时钟都有属于单个时钟的预分频器。
总结
引用一段别人写的十分完美的话
为什么STM32Fl03的时钟系统 会显得如此复杂呢?因为有倍频、分频和一系列外设时钟的开关。 首先,倍频是考虑到电磁兼容性,如果直接外接一个 72MHz的晶振, 过高的振荡频率会给制作电路板带来难度。
其次,分频是因为STM32Fl03各个片上外设的工作频率不尽相同,既有高速外设又有 低速外设, 需要把高速外设和低速外设分开管理。
最后,每个 STM32F103外设都配备了时钟开关。 当使用某个外设时, 一定要打开该外设的时钟;而当不使用某个外设时,可以把这个外设时钟关闭,从而降低STM32的整体功耗。