蓝桥杯嵌入式学习之STM32时钟详解

今天是大年初一
渐渐感觉自己的时间不够用了…
我现在好困,但是没办法,必须完成任务指标

希望明天能买到口罩…


在讲时钟之前先说点简单的东西。
第一个 extern的用法:
变量只用定义一次,在其他文件里要用的的话得用extern声明一下,声明可以很多次。
第二个 MDK寄存器地址映射分析:
外设基地址系统会给你一个准确得地址数值,以她为母体得子地址都是在基地址的基础上偏移得到。例如:
蓝桥杯嵌入式学习之STM32时钟详解


时钟环节:

stm32的时钟系统很复杂,比msp430复杂很多。
蓝桥杯嵌入式学习之STM32时钟详解
图中蓝框是一切时钟开始的地方

英文 含义 来源 频率(Hz)
HSI(HIGH SPEED INTERIOR) 高速内部时钟 RC振荡器产生(不稳定) 8M
HSE(HIGH SPEED EXTERN) 高速外部时钟 晶振产生(稳定) 8M
LSE 低速外部时钟 晶振 32.768K
LSI 低速内部时钟 RC 40K

(你那么聪明,我表格偷懒应该问题不大吧~~
然后根据流程往下走就好了,倍频啊,分频啊,选择啦什么的。

PLL不得超过72MHz,然后给USB提供时钟的话,如果是48MHz那么刚好,如果是72MHz那么就1.5分频,不管怎么样USB都是48MHz输出。

MCO:是选择输出的时钟源。

以上所有的分频,倍频,选择都是通过寄存器来控制的,包括使能。

几个重要的时钟

SYSCLK(系统时钟)
AHB总线时钟
APB1总线时钟(低速): 速度最高36MHz
APB2总线时钟(高速): 速度最高72MHz
PLL时钟

蓝桥杯嵌入式学习之STM32时钟详解
结构体中重要的已经用红色标出,具体可以查看中文参考手册。
蓝桥杯嵌入式学习之STM32时钟详解
库函数的也如上图所示。

前三个系统默认帮你设置好了,但是你要是想要修改必须要会。