STM32学习笔记:【001】时钟树与RCC
导言
如果学过单片机的同学应该不会陌生,学习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的更多相关文章
- stm32学习笔记----双串口同时打开时的printf()问题
stm32学习笔记----双串口同时打开时的printf()问题 最近因为要使用串口2外接PN532芯片实现通信,另一方面,要使用串口1来将一些提示信息输出到上位机,于是重定义了printf(),使其 ...
- STM32学习笔记——OLED屏
STM32学习笔记--OLED屏 OLED屏的特点: 1. 模块有单色和双色可选,单色为纯蓝色,双色为黄蓝双色(本人选用双色): 2. 显示尺寸为0.96寸 3. 分辨率为128*64 4. ...
- STM32学习笔记——点亮LED
STM32学习笔记——点亮LED 本人学习STM32是直接通过操作stm32的寄存器,使用的开发板是野火ISO-V2版本: 先简单的介绍一下stm32的GPIO: stm32的GPIO有多种模式: 1 ...
- stm32学习笔记——外部中断的使用
stm32学习笔记——外部中断的使用 基本概念 stm32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间只能使用一个.比如说,PA0,PB0 ...
- STM32学习笔记(四)——串口控制LED(中断方式)
目录: 一.时钟使能,包括GPIO的时钟和串口的时钟使能 二.设置引脚复用映射 三.GPIO的初始化配置,注意要设置为复用模式 四.串口参数初始化配置 五.中断分组和中断优先级配置 六.设置串口中断类 ...
- [Oracle]OWI学习笔记--001
[Oracle]OWI学习笔记--001 在 OWI 的概念里面,最为重要的是 等待事件 和 等待时间. 等待事件发生时,需要通过 P1,P2,P3 查看具体的资源. 可以通过 v$session_w ...
- STM32学习笔记-NVIC中断知识点
STM32学习笔记-NVIC中断知识点总结 中断优先级设置步骤 1. 系统运行后先设置中断优先级分组 函数:void NVIC_PriorityGroupConfig(uint32_tNVIC_Pri ...
- TensorFlow机器学习框架-学习笔记-001
# TensorFlow机器学习框架-学习笔记-001 ### 测试TensorFlow环境是否安装完成-----------------------------```import tensorflo ...
- matlab学习笔记7-定时器
一起来学matlab-matlab学习笔记7-定时器 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 感谢张老师的书籍,让 ...
随机推荐
- 洛谷P2678跳石头题解
题目 这个题也是一个很经典的题了.其主要思想也是二分答案,原因就是题目中只要出现最大值最小或最小值最大,这种描述十有八九就是二分答案. 这个题原题也是让我们求最短的跳跃距离的最大值. 显而易见,最大值 ...
- Codeforces Round #505 Div. 1 + Div. 2
传送门:>Here< 从来没打过\(CF\)(由于太晚了)-- 不知道开学了以后有没有机会能够熬夜打几场,毕竟到现在为止都是\(unrated\)好尴尬啊~ 今天早上打了几题前几天的比赛题 ...
- 爬虫_腾讯招聘(xpath)
和昨天一样的工作量,时间只用了一半,但还是效率有点低了,因为要把两个网页结合起来,所以在列表操作上用了好多时间 import requests from lxml import etree heade ...
- Elasticsearch 安全篇
为什么要开放外网访问Elasticsearch:1.一些插件监听使用,方便及时了解线上数据的情况,比如说head插件等2.为了HTTP直接访问,有的同学考虑到通过后台TCP查询,然后返回数据,还不如直 ...
- js 时间类函数
js 时间类是 Date() var currtime = new Date();// 实例一个时间,是当前时间 接收一个时间戳为参数 var time2=new Date(currtime.get ...
- 「ZJOI2016」旅行者 解题报告
「ZJOI2016」旅行者 对网格图进行分治. 每次从中间选一列,然后枚举每个这一列的格子作为起点跑最短路,进入子矩形时把询问划分一下,有点类似整体二分 至于复杂度么,我不会阿 Code: #incl ...
- QML-关于Qt.rgba()颜色无法正常显示问题
GitHub:八至 作者:狐狸家的鱼 本文链接:关于Qt.rgba()颜色的正确写法 当在正常给color属性写颜色的时候,用十六进制能正常显示,但是用Qt.rgba()时,颜色无法正常显示出来. 按 ...
- LOJ#2542 随机游走
解:首先minmax容斥变成经过集合t的第一个点就停止的期望步数.对于某个t,设从x开始的期望步数为f(x) 如果x∈t,f(x) = 0.否则f(x) = ∑f(y) / in[x] + 1 树上高 ...
- 【洛谷P2042】维护数列
题目大意:维护一个序列,支持区间插入,区间删除,区间翻转,查询区间元素和,查询区间最大子段和操作. 题解:毒瘤题...QAQ打完这道题发现自己以前学了一个假的 Splay.. 对于区间操作,用 spl ...
- python基础-守护进程、守护线程、守护非守护并行
守护进程 1.守护子进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic pro ...