笔记--STM32时钟系统简单总结

STM32时钟系统

这里写图片描述
五个蓝色的正方形都是时钟源
HSI(high speed internal)高速内部时钟 RC振荡器不够稳定

图中梯形代表选择器(几选一) PLLXCLK常作为系统时钟来源

HSE (high speed external)高速外部时钟

MCO 是内部时钟输出引脚 对应PA8

绿色矩形对应预分频器

使用每个设备之前 都要进行时钟使能 原因之一就是:设备的功耗问题 不需要的外设就不需要开启时钟了

PCLK1和PCLK2下面挂载了很多外设
这里写图片描述

这里写图片描述

备注:某一个外设的时钟被使能后 该时钟振荡器还不能马上稳定 所以还有一个标志位代表其是否稳定
这里写图片描述

1.对应的是五个时钟源的使能
2.对应的是时钟源的来源配置
3.对应的是由时钟源一层层分频得到的外设时钟的使能

这里写图片描述

这里写图片描述

SysTick定时器应用(延时函数)
这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述

systic_config这个函数主要设置两个中断之间 有多少个systick时钟周期 即中断之间的时间间隔

这里写图片描述
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);这一句把SysTick的时钟选择外部时钟,这里需要注意的是: SysTick 的时钟源自 HCLK 的 8 分频,假设我们外部晶振为 8M,然后倍频到 72M,那么 SysTick 的时钟即为 9Mhz,也就是 SysTick 的计数器 VAL 每减 1,就代表时间过了 1/9us。所以 fac_us=SystemCoreClock/8000000;这句话就是计算在 SystemCoreClock时钟频率下延时 1us 需要多少个 SysTick 时钟周期。同理, fac_ms=(u16)fac_us*1000;就是计算延时 1ms 需要多少个 SysTick 时钟周期,它自然是 1us 的 1000 倍。初始化将计算出 fac_us 和fac_ms 的值(其实就是在算定时1us的定时器倒计时的计数值)
这里写图片描述

注意这个LOAD是有限制的 因为是24位的定时器 所以MAX值为2^24 -1

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值