flash时钟(简单的flash5分钟动画)

200

时钟是微处理器的驱动力,类似人的心脏,只有不停地跳动系统才能正常运行。Stm32不同系列的时钟基本结构类似,就是外设有些差别。这里以stm32f030系列为例来介绍。

在参考手册中,时钟树如下所示:

flash时钟(简单的flash5分钟动画)插图

图中红色块表示时钟源,这里一共有5个时钟源。

1、8M HSI RC,这是芯片内部的RC时钟

2、4-32M HSE OSC,这是外部时钟,可以输入外部时钟或者晶振,精度高

3、32.7689k LSE OSC,这是RTC外部晶振时钟

4、40K LSI RC,这是内部低速RC振荡器时钟

5、14M HSI14RC,这是专门给ADC用的内部14M RC晶振

根据自己的需求和硬件设计,选择打开对应的时钟源,不用的就不要打开,可以减少功耗。

紫色线表示Flash的时钟,可以看到它的时钟源是内部的8M RC振荡器,从这里可以推测内部这个8M的时钟基本在一直工作,因为程序运行时需要不断地访问flash。

实际在系统复位后,会默认使用这个内部的8M RC时钟,而想要关掉它必须保证没有任何设备直接或者间接使用它。

中间红绿蓝三条通路是系统时钟的三种可选项。可以直接使用内部的8M RC时钟,可以直接使用外部HSE OSC时钟,或者通过PLL倍频后的时钟。

走PLL那条路需要:

1、 时钟源分频

2、 选择PLL时钟源

3、 PLL倍频

4、 选择PLL作为SYSCLK

只有通过PLL才能达到最高的工作频率。

黄色块是AHB分频,青色块是APB分频,这俩上接了很多外设。

flash时钟(简单的flash5分钟动画)插图1

要访问这些外设的寄存器,首先必须打开对应的时钟。APB分成了两组,需要在对应的寄存器中进行配置。

实际写代码的时候,使能一个时钟以后要等待其稳定,每个时钟源都有专门的寄存器位指示是否ready。另外,HSI 8M和HSI14M可以修正,以排除制造、温度和干扰的影响。

flash时钟(简单的flash5分钟动画)插图2

至此系统的时钟就搞定了,以后使用某个外设前,只需要使能对应的时钟即可。

flash时钟(简单的flash5分钟动画)插图3

!!!:不同的处理器其细节可能会有些许差别,具体的情况还需要查阅参考手册。

最新版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如有侵权请联系删除!站长邮箱:194375642@qq.com