一.时钟源

STM32有5个时钟源,分别是:

1.HSE:High_Speed_Extenal 外部高速时钟,焊接在芯片外部,精确度较高,是系统时钟的主要来源。

2.HSI :High_Speed_Inernal内部高速时钟,在芯片内部,精度不高。

3.LSE:Low_Speed_Extenal外部低速时钟,接频率为32.768kHz的石英晶体。主要为RTC时钟服务。

4.LSI:Low_Speed_Inernal内部低速时钟,提供低功耗时钟,大小为40kHz,主要用于驱动独立看门狗。

5.PLL:Phase-locked loop锁相环时钟,其时钟源由HSE和HSI提供。

二.系统时钟

1.系统时钟(SYSCLK):时钟源由PLL、HSE、HSI提供。其中,系统时钟主要由HSE--->选择器--->选择器--->PLL这一条线路来提供。

PS:这也是为什么PLL被称作时钟源的原因,因为相对于系统来说,PLL可以为系统时钟提供时钟来源。

2.系统时钟分为3路:第一路为HCLK,最大频率为72MHz;第二路挂载在APB1总线下,最大频率为36MHz;第三路挂载在APB2总线下,最大频率为72MHz。

三.修改系统时钟的方法

1.观察启动文件,发现在执行SystemInit函数后,才会执行main函数,而系统时钟就是在SystemInit函数中配置。如图:

2.利用鼠标右键点击SystemInit,选择Go To Definition Of 'SystemInit' ,可以跳转到void SystemInit()函数,里面都是RCC寄存器的配置。如图:

3.重点观察SystemInit()函数中的这个函数,SetSysClock()函数(PS:SetSysClock意为设置系统时钟),同样利用Go To Definition Of 'SetSysClock'跳转到SetSysClock函数内部。

4.在SetSysClock函数内部是一堆条件编译,系统时钟设为72MHz的原因是因为我们宏定义了SYSCLK_FREQ_72MHz,从而执行了编译条件 'defined SYSCLK_FREQ_72MHz'使得执行了SetSysClockTo72(); 从而设置了系统时钟72MHz。如图:

所以,我们改变系统时钟为36MHz的方法是将宏定义defined SYSCLK_FREQ_72MHz改为defined SYSCLK_FREQ_36MHz。

改变流程:右键选中SYSCLK_FREQ_72MHz,点击,选择Go To Definition Of 'SYSCLK_FREQ_72MHz'点击跳转,跳转后,将代码

#define SYSCLK_FREQ_72MHz  72000000//将此行注释

注释掉,将 /* #define SYSCLK_FREQ_36MHz  36000000 */ 此段注释抹去,重新编译,即将系统时钟改变为36MHz。

/* #define SYSCLK_FREQ_36MHz  36000000 */ 将此段注释抹去

流程如图:

选中SYSCLK_FREQ_72MHz,跳转到宏定义:

更改注释:

更改完成:

 声明:文章原创不易,转载引用请声明出处。

STM32时钟简介及系统时钟频率的更改方式相关推荐

  1. esp32 rtc 时钟设置不对_STM32入门系列-STM32时钟系统,STM32时钟树

    时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...

  2. STM32 时钟系统

    STM32时钟系统的基本概念 概念及意义 (1)概念:时钟系统是由振荡器(信号源).定时唤醒器.分频器等组成的电路.常用的信号源有晶体振荡器和RC振荡器. (2)意义:时钟对数字电路而言非常重要,没有 ...

  3. STM32——时钟系统

    STM32--时钟系统 宗旨:技术的学习是有限的,分享的精神是无限的. 一.时钟树 普通的MCU,一般只要配置好GPIO 的寄存器,就可以使用了.STM32为了实现低功耗,设计了非常复杂的时钟系统,必 ...

  4. STM32时钟系统了解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.时钟系统是什么? 二.为什么STM32需要多个时钟源? 三.STM32LE/E4xx时钟树 四.时钟源分类 五.以下是对 ...

  5. STM32时钟系统的概念及意义

    STM32时钟系统的基本概念 概念及意义 概念 时钟系统是由振荡器(信号源).定时唤醒器.分频器等组成的电路.常用的信号源有晶体振荡器和RC振荡器 意义 时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下 ...

  6. STM32时钟系统(1)-时钟框图解释

    STM32时钟系统(2)-时钟系统常用寄存器和库函数 STM32时钟系统 官方文档说明: Three different clock sources can be used to drive the ...

  7. 【STM32】初学者必读STM32时钟系统详解

    目录 1 前言 2 时钟系统介绍 3 时钟源 3.1 系统时钟源 3.2 次级时钟源 3.3 时钟源特点 4 时钟 4.1 AHB总线时钟 4.2 APB1总线时钟 4.3 APB2总线时钟 5 时钟 ...

  8. STM32——时钟系统RCC详细介绍

    STM32的时钟系统学习,主要集中在时钟树的分析应用,时钟树里面有很多的时钟,它具体怎么配置,或者说我们的固件库函数是怎么配置的,这就是我们需要掌握的地方,最后我们达到的目的就是编写自己的库函数,实现 ...

  9. 一 STM32时钟系统

    前言 意法半导体32位系列微控制器,作为目前市场上主流的32位MCU,所占市场份额很大,相应的教程,应用,网上资源也是非常丰富,而且讲的也非常好.所以我写的这个系列博客不是学习教程,而是我工作中用到一 ...

  10. STM32学习笔记1----STM32F429系统时钟

    FreeRTOS任务基本知识 1.系统时钟     在 STM32F429 中,有 5 个最重要的时钟源,为 HSI.HSE.LSI.LSE.PLL.其中 PLL实际是分为三个时钟源,分别为主 PLL ...

最新文章

  1. Mac 下通过Keytool生成签名证书
  2. 完全详解--Silverlight 下载文件
  3. 没被同事卷死,被司机卷死了...
  4. 007_支持序列化空值
  5. 你真的了解引用传递与值传递吗?
  6. linux安装磁盘分区设置,Linux安装与磁盘分区.doc
  7. 安徽省计算机水平考试试卷,第1次安徽省计算机水平考试试卷.doc
  8. 匿名内部类探究——它是一个实例
  9. plt绘制1 / (1 + np.exp(-x))
  10. linux home目录撑爆,Linux centos /var/lib/docker/container目录导致系统存储爆满,占用大量存储解决方案...
  11. 解决Django Rest Framework中的跨域问题
  12. AI的委屈只有它知道……
  13. flow_from_directory返回值
  14. java java.lang.string_无法将java.lang.String字段设置为java.lang.String
  15. 被遗忘权的崩塌:当AI可以通过你的朋友了解你
  16. 【数据结构】链表 - Go 语言实现
  17. python如何实现隔行换色_Excel2010如何实现隔行设置背景色
  18. 上海交大开源GPGPU青花瓷仿真环境搭建
  19. 四川省国家级自然保护区功能区划
  20. bzoj 1539: [POI2005]Dwu-Double-row

热门文章

  1. unity4.0多平台发布强势登陆引领3D游戏开发新时代
  2. http://www.jb51.net/softjc/33896.html(vs2010破解)
  3. 嵌入式工程师常见C语言手写面试题,摘录于RTT内核源码
  4. python实现企业微信定时发送文本消息
  5. magento常用插件
  6. Java使用itextpdf实现为已有的pdf文件添加水印
  7. HDU-1814 Peaceful Commission (2-SAT暴力模板 暴力染色+字典序最小)
  8. 打造自己的MyLifeOrganized 2(MLO2)云同步
  9. 单片机c语言sfr数据读,单片机c语言的sbit和sfr.docx
  10. 动态仙人掌 系列题解之二——3465: 动态仙人掌 II