
时钟为单片机提供了稳定的机器周期,从而使我们的系统能够正常的运行
时钟就像我们人的心脏,一旦有问题就整个都会崩溃
stm32有很多外设,但不是所有的外设都使用同一种时钟频率工作,比如我们的内部看门狗和RTC
只要30几k的频率就可以工作,对于我们的定时器可能就要几十mhz的主频,所以他们的频率是不一样的
所以对于我们stm32就有多个时钟源进行选择,前面我们说了,系统复位是进入我们systeminit的初始化函数
通过这个函数,将我们的时钟设置为168mhz,注意这指的是标准库的前提下,对于我们hal库是没有实现对应的时钟的设置的
首先我们stm时钟树有5个重要的时钟源
一个是lsi一个是lse
以及我们的shi,和我们的she
以及我们的pl

这是我们重要的时钟源
按照时钟频率可以分为高速时钟源和低速时钟源
HSI 和HSE和高速 LSI和LSE是低速
PLL是特例

这个LSI时钟源是为RTC提供的

这个是16mhz, 这个可以做系统时钟,以及PLL所向环的输入
STM32时钟树

看门狗的时钟

stm32管脚的mhz不能高于100mhz
时钟配置函数

第一步完成spu的设置

第二步对外部存储器的一个设置

第三步对中断向量表的配置

电源相关的时钟配置使能他

这里设置电压输出级别·

配置时钟源

配置我们的分频系数,以及我们的AHB1,AHB2

时钟源选择高速晶振,HSE
![]()
时钟配置函数

可以在这些画红线的函数那里查看时钟的配置函数
自定义系统时钟


闪烁灯


在这个system.c这里面我们的时钟函数有介绍这个时钟的范围



![[Excel VBA]如何使用VBA自动生成图表](https://i-blog.csdnimg.cn/direct/5381427ca0cd4a56be8c26b5c6db923a.png)
















