STM32时钟系统
文章图片
五个蓝色的正方形都是时钟源
HSI(high speed internal)高速内部时钟 RC振荡器不够稳定
图中梯形代表选择器(几选一) PLLXCLK常作为系统时钟来源
HSE (high speed external)高速外部时钟
MCO 是内部时钟输出引脚 对应PA8
绿色矩形对应预分频器
使用每个设备之前 都要进行时钟使能 原因之一就是:设备的功耗问题 不需要的外设就不需要开启时钟了
PCLK1和PCLK2下面挂载了很多外设
文章图片
文章图片
备注:某一个外设的时钟被使能后 该时钟振荡器还不能马上稳定 所以还有一个标志位代表其是否稳定
文章图片
1.对应的是五个时钟源的使能
2.对应的是时钟源的来源配置
3.对应的是由时钟源一层层分频得到的外设时钟的使能
文章图片
文章图片
SysTick定时器应用(延时函数)
文章图片
文章图片
文章图片
【笔记--STM32时钟系统简单总结】
文章图片
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
推荐阅读
- stm32|基于STM32和freeRTOS智能门锁设计方案
- 日常分享|共享充电宝方案原理,具体部件组成以及主控MUC参数
- #|ARM裸机开发(汇编LED灯实验(I.MX6UL芯片))
- STM32|STM32的四种IO输出模式
- STM32 远程升级(ISP / IAP)
- stm32|stm32f103can总线过滤器配置
- STM32CubeMX配置SDIO模式(非DMA方式)
- STM32|如何建一个STM32F030标准库工程模板
- STM32 时钟RCC相关配置参考stm32f10x_rcc.h
- STM32 NVIC