【STM32学习】时钟配置详解

  • 看懂时钟图
  • 结合代码
  • 外部高速时钟修改

看懂时钟图

在刚开始学习32的时候,并不会在意这些,或者即使看了也看的不是很明白。随着学习的深入,我们发现看门狗、定时器、ADC很多外设都需要我们搞清楚,各自的时钟频率是多少变得很重要。

本文结合正点原子F103RBT6单片机的时钟初始配置进行说明。


为了系统能够稳定运行,在使用时,无论是低速还是高速时钟,都是使用外置的。
外部高速时钟多为晶振为8MHz。外部低速时钟为32.768KHz。

  1. 项目1
  2. 项目2
  3. 项目3
  1. 内部低速时钟LSI
  • 由图中能看到,LSI为独立看门狗提供时钟源。但是LSI频率不是很稳定。
  1. 外部低速时钟LSE
    主要是为RTC提供时钟。
  • RTC时钟源有三种可以选择:①外部LSE ②外部HSE经过128分频 ③内部LSI
  • 对于LSE源,只要VBAT维持供电,尽管VDD供电被切断,RTC仍继续工作。(对于另外两种见参考手册)
  1. 外部高速时钟HSE
    对于F103的片子,我们多为8M晶振。
    时钟源流程:
  • 8M经过PLLXTPRE到达PPLMUL,经过9倍频到72MHz,作为PPLCLK;
  • PPLCLK往后走也就是SYSCLK为72MHz,然后经过AHB(1分频)往后继续传递;
    接下来从上往下,分别说明:
  • HCLK时钟是直接由AHB传递过来,所以为72MHz;
  • 滴答定时器(systick):由AHB经过8分频得到的,为9MHz。(一定会被8分频);
  • PCLK1:已经写明了最大为36MHz,所以如果AHB为72MHz的话,APB1一定要经过2分频,才能得到36MHz。
  • TIM2-7:因为APB1经过了2分频,所以TIMXCLK得到的频率为APB1*2=72MHz;
  • PCLK2: AHB为72MHz,APB2最大能为72MHz,所以直接1分频,得到72MHz;
  • TIM2-7:因为APB2为1分频,所以TIMXCLK得到的频率为APB2=72MHz;

结合代码

再看代码的时候,我们很不习惯看固件库,但是这个是及其重要的,虽然看起来很耗时。
其次,就是看英文注释。即使我们不去看具体寄存器配置,也能很清晰的明白,那一句是干什么事情的。

外部高速时钟修改

STM32系列修改外部晶振以及代码的修改(f103、f105为例)

【STM32学习】时钟配置详解相关推荐

  1. Cubemx与HAL库系列教程|系统时钟配置详解及源码分析

    STM32时钟系统简介 STM32种类繁多,时钟系统也不尽相同,但基本的还是大差不差,今日小飞哥就F1系列的MCU简单聊一聊STM32的时钟系统 1.时钟种类介绍: 先来看一看时钟树图,包含了整个系统 ...

  2. 关于STM32F105/107时钟配置详解

    本文用的是标准库,先给出时钟配置代码,代码在system_stm32f10x.c里面. 首先定义最终系统频率72MHz: 如果是其他频率把72的注释掉,打开你想配置的频率.这个频率并不会影响实际的设置 ...

  3. STM32开发 -- 时钟系统详解

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/81558649 上一篇文章讲了RTC,里面其实已经包含了时钟系统的介绍了.这篇 ...

  4. STM32 CAN过滤器配置详解

    1 前言 STM32F10X的bxCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B. 在CAN协议里,报文的标识符不代表节点的地址,而是和报文的 ...

  5. STM32系统时钟超详解

    ✅作者简介:嵌入式入坑者,与大家一起加油,希望文章能够帮助各位!!!!

  6. STM32开发 -- 低功耗模式详解(2)

    如需转载请注明出处:https://juyou.blog.csdn.net/article/details/98631012 上一篇文章 STM32开发 – 低功耗模式详解(1) 简单的总结了一下低功 ...

  7. 【STM32-I2C学习总结】STM32:硬件-IIC详解 , 固件库编程 , 手把手教你实现IIC

    STM32:硬件-IIC详解 , 固件库编程 , 手把手教你实现IIC 一 .I2C物理层 二.协议层 1.I2C基本读写过程 (1)主机写数据到从机 (2)主机由从机中读数据 (3)I2C 通讯复合 ...

  8. 深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) By 李泽南2017年6月26日 15:57 本周一(6 月 19 日)机器之心发表文章《我的深度学习开发环境详解:Te

    深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) 机器之心 2017-06-25 12:27 阅读:108 摘要:参与:李泽南.李亚洲本周一(6月19日)机器之心发表文章<我的深 ...

  9. webpack手摸手学习系列之配置详解的 entry、output、module、resolve、devServer 和 optimization

    一.webpack 配置详解之 entry 创建空文件夹,通过 npm init 命令初始化 package.json 文件,通过 npm install webpack webpack-cli -g ...

最新文章

  1. AS3版本的MaxRects算法测试
  2. volumill插件下载网盘地址_IDM也可以下载磁力链接?(附资源)全程30Mb/s!你不知道的那些IDM妙用!...
  3. rest资源设计_REST资源何时应获得其自己的地址?
  4. webgl 基础渲染demo_WebGL + ThreeJS 实现实时水下焦散 Part 1
  5. C语言操作mysql
  6. 小学用计算机画画的课件,用计算机画图画.ppt
  7. java父类与子类的构造方法,java父类子类构造方法及方法的调用
  8. 实现原理 扫描枪_详细介绍扫描枪工作原理
  9. SourceInight快捷键(英文版)
  10. [转]如何查找最新文献
  11. 地图标识符号大全_【好玩微信小游戏大全】虫虫逃亡:烧脑游戏佳作!强烈推荐!...
  12. “欲望像海水,喝得越多,越是口渴。”欲望过多,
  13. P1252 马拉松接力赛
  14. 【大数据面试题】(二)Hive 相关面试题总结
  15. C语言课程设计——宾馆管理系统
  16. 高中生也能成为软件达人吗?
  17. java基础笔记系列_Day04
  18. 获得天气相关接口六-获得城市最新天气预警
  19. 碎片数据收集利器-结构化动态表单设计思路
  20. 2023 兔年春节倒计时微信小程序源码

热门文章

  1. 微信小程序对苹果(ipone)手机不能选择复制的问题解决方法
  2. css动画西游记行走
  3. intel和amd的cpu核心详细介绍
  4. 人机交互理论二:认知过程与交互设计原则
  5. js img图片加载失败,重新加载+断网检查 1
  6. 自媒体、公众号快速打造爆文的几大途径
  7. C#开发——winform中将Excel数据导入DataGridView
  8. 为CSDN添加打赏收钱功能
  9. 陈天洲:激越厉天皆青年
  10. css后代选择器:nth_消失的行为:CSS:空选择器