1.时钟树
1.1 时钟
问:什么是时钟?为什么要有时钟?时钟是怎么产生的?
(1)什么是时钟?
时钟就是具有周期性的脉冲信号,相当于单片机的心脏,给单片机提供一个统一的信号,要想使用单片机的外设必须开启相应的时钟。
对CPU来说,假设CPU在一个时钟周期内执行一条指令,若时钟频率越高,则时钟周期更短,则在相同的时间CPU能够执行更多的指令,CPU的运行速度更快。
(2)为什么要有时钟?
时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。时钟就是CPU的脉搏,决定cpu速率,像人的心跳一样 只有有了心跳,人才能做其他的事情,而单片机有了时钟,才能够运行执行指令,才能够做其他的处理 (点灯,串口等等其他操作),时钟的重要性不言而喻。
(3)时钟是怎么产生的?
时钟产生比较复杂,方法也有很多种,但它们都是从晶体谐振器(简称晶振)开始的,在石英晶片上加上交变电压,晶体就会产生机械振动,机械形变振动又会产生交变电场,尽管这种交变电场的电压极其微弱,但其振动频率是十分稳定的。(我只能说神奇的物理世界)
1.2 时钟树概述
STM32时钟系统主要的目的就是给相对独立的外设模块提供时钟,为了降低整个芯片的功耗,所有外设时钟默认都是关闭状态(disable),当我们使用某个外设就要开启这个外设的时钟(enable)。
不同外设需要的时钟频率不同,没必要所有外设都用高速时钟造成浪费,而且有些外设也接受不了这么高的频率,这也是为什么STM32有四个时钟源(HSE、 LSE、HSI、LSI)的原因,就是为了兼容不同速度的外设。
而51单片机不需要配置时钟,是因为一个时钟开了之后所有的功能都可以用了,而这个时钟是默认开启的,所以51单片机无法做到低功耗。
STM32时钟系统主要的目的就是给相对独立的外设模块提供时钟,也是为了降低整个芯片的耗能。时钟树框图见《STM32F4xx中文参考手册》6.2章节
1.3 主时钟树详解
在STM32中,有4个时钟源:
① LSI(Low Speed Internal Clock, 低速内部时钟):RC振荡器,频率为32KHz。