导言

如果学过单片机的同学应该不会陌生,学习51单片机时最经常听到的就是“最小系统”。

最小系统里面少不了晶振,否则单片机无法工作。

单片机需要晶振(时钟源)来工作,那么对于STM32芯片同样如此

此外,同一个电路,时钟越快功耗越大,抗电磁干扰能力也随之变弱。

所以对于较为复杂的MCU一般都是采取多时钟源的方法来解决这些问题。

STM32的时钟树与时钟源

时钟源

在STM32F4中,有5个最重要的时钟源,按来源分为内外部两种;按速率也可以分为高低速两种。

时钟源 含义 时钟速率 用途
HSI 高速内部时钟 16MHz 可以直接作为系统时钟或者PLL输入
HSE 高速外部时钟 4~26MHz 可以直接作为系统时钟
LSI 低速内部时钟 32KHz 供给独立看门口和自动唤醒单元使用
LSE 低速内部时钟 32.768KHz 主要是RTC(实时时钟)的时钟源
PLL

锁相环

(内部倍频器)

可以是

HSI的二分频

HSE的一分频

或HSE的二分频

锁相环倍频输出,分为主PLL和专用PLL:

  1)主PLL由HSE或HSI提供时钟信号,并且具有两个不同的输出时钟:

    ①PLLP:生成高速的系统时钟,最高180MHz;(STM32F429)

    ②PLLQ:生成USB OTG FS的时钟(48MHz)、随机数发生器和SDIO的时钟。

  2)专用时钟PLL(PLLI2S),用于生成精确时钟,在I2S接口实现高品质音频输出。

  

时钟树

由于STM32复杂的时钟体系,有人形象地称下图为时钟树。

当初学习到这个地方的时候,本人也觉得混乱。

但其实只要抓准5个时钟源,“顺藤摸瓜”就可以捋清关系了。

下图是笔者根据自己开发板的情况画的简单线路图。

了解完以上的关系就不难理解为什么任何片内外设在使用之前,必须使能相应的时钟

 附时钟频率的计算:

SYSCLK = Fvco/pllp = Fs*(plln/(pllm*pllp));

Fvco:VCO频率

SYSCLK:系统时钟频率

Fusb:USB,SDIO,RNG等的时钟频率

Fs:PLL输入时钟频率,可以是HSI,HSE等.

plln:主PLL倍频系数(PLL倍频),取值范围:64~432.

pllm:主PLL和音频PLL分频系数(PLL之前的分频),取值范围:2~63.

pllp:系统时钟的主PLL分频系数(PLL之后的分频),取值范围:2,4,6,8

pllq:USB/SDIO/随机数产生器等的主PLL分频系数(PLL之后的分频),取值范围:2~15.

STM32学习笔记:【001】时钟树与RCC的更多相关文章

  1. stm32学习笔记----双串口同时打开时的printf()问题

    stm32学习笔记----双串口同时打开时的printf()问题 最近因为要使用串口2外接PN532芯片实现通信,另一方面,要使用串口1来将一些提示信息输出到上位机,于是重定义了printf(),使其 ...

  2. STM32学习笔记——OLED屏

    STM32学习笔记--OLED屏 OLED屏的特点: 1.  模块有单色和双色可选,单色为纯蓝色,双色为黄蓝双色(本人选用双色): 2.  显示尺寸为0.96寸 3.  分辨率为128*64 4.   ...

  3. STM32学习笔记——点亮LED

    STM32学习笔记——点亮LED 本人学习STM32是直接通过操作stm32的寄存器,使用的开发板是野火ISO-V2版本: 先简单的介绍一下stm32的GPIO: stm32的GPIO有多种模式: 1 ...

  4. stm32学习笔记——外部中断的使用

    stm32学习笔记——外部中断的使用 基本概念 stm32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间只能使用一个.比如说,PA0,PB0 ...

  5. STM32学习笔记(四)——串口控制LED(中断方式)

    目录: 一.时钟使能,包括GPIO的时钟和串口的时钟使能 二.设置引脚复用映射 三.GPIO的初始化配置,注意要设置为复用模式 四.串口参数初始化配置 五.中断分组和中断优先级配置 六.设置串口中断类 ...

  6. [Oracle]OWI学习笔记--001

    [Oracle]OWI学习笔记--001 在 OWI 的概念里面,最为重要的是 等待事件 和 等待时间. 等待事件发生时,需要通过 P1,P2,P3 查看具体的资源. 可以通过 v$session_w ...

  7. STM32学习笔记-NVIC中断知识点

    STM32学习笔记-NVIC中断知识点总结 中断优先级设置步骤 1. 系统运行后先设置中断优先级分组 函数:void NVIC_PriorityGroupConfig(uint32_tNVIC_Pri ...

  8. TensorFlow机器学习框架-学习笔记-001

    # TensorFlow机器学习框架-学习笔记-001 ### 测试TensorFlow环境是否安装完成-----------------------------```import tensorflo ...

  9. matlab学习笔记7-定时器

    一起来学matlab-matlab学习笔记7-定时器 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 感谢张老师的书籍,让 ...

随机推荐

  1. BZOJ4818 [SDOI2017] 序列计数 【矩阵快速幂】

    题目分析: 一个很显然的同类项合并.注意到p的大小最大为100,考虑把模p意义下相同的求出来最后所有的减去没有质数的做矩阵快速幂即可. 代码: #include<bits/stdc++.h> ...

  2. [USACO07JAN]Cow School

    题目链接:[USACO07JAN]Cow School 一开始还以为是一道分数规划,后来发现自己看错题了, 然后成功入坑 题目是要求先按照$t_i/p_i$从小到大排序,然后删除前$d$个后求出剩下的 ...

  3. new Date()导致日期增加了一天

    问题是:将字符串 "Sun Nov 12 14:00:00 CST 2017"  转成Date类型 有一个简单的方法是直接使用new Date(),但是这个方法对于某些日期的计算, ...

  4. LOJ2557. 「CTSC2018」组合数问题

    LOJ2557. 「CTSC2018」组合数问题 这道题是我第一道自己做完的题答题.考场上面我只拿了41分,完全没有经验.现在才发现其实掌握了大概的思路还是不难. 首先模拟退火,通过了1,2,6,9, ...

  5. 152. Maximum Product Subarray 以及 讨论【最大连续子序列】

    题目大意: 连续最大子段积 题目思路: 最大值只能产生在一个正数x一个正数,一个负数乘一个负数,所以维护两个值,一个区间最大值,一个最小值 其他的话: 在讨论这个问题之前,我先来说一说大一刚开学就学了 ...

  6. deque双端队列容器

    //deque双端队列容器 //deque双端队列容器与vector一样,采用线性表顺序存储结构,但与vector不同的是, //deque采用的分块线性存储结构来存储数据,每块的大小一般为512字节 ...

  7. 省选前的JOI

    RT,发现找不到题,于是又开了新坑 JOI特色:重思考,代码难度(相比NOI系列)基本没有 (省选前到处挖坑2333) JOI 2017 Final 焚风现象 差分,莫得了 (不是看到200ms就tm ...

  8. A1127. ZigZagging on a Tree

    Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can ...

  9. 【洛谷P2925 [USACO08DEC]干草出售Hay For Sale】

    题意翻译 题目描述 农民john面临一个很可怕的事实,因为防范失措他存储的所有稻草给澳大利亚蟑螂吃光了,他将面临没有稻草喂养奶牛的局面.在奶牛断粮之前,john拉着他的马车到农民Don的农场中买一些稻 ...

  10. js弹出层

    js弹出层 1.div附近显示 <div id="message"></div> $().delay().hide(); 2.遮罩层 表单提交后遮住页面,等 ...