STM32使用RCC(Reset Clock Contorl,复位时钟控制器)配置时钟以及时钟树

  • RCC主要作用
    • 设置系统时钟SYSCLK(System Clock)频率;
    • 设置AHB、APB2、APB1以及各个外设分频因子,从而设置HCLK、PCLK2、PCLK1以及各个外设的时钟频率;
    • 控制AHB、APB2、APB1这三条总线时钟以及每个外设的时钟开启;
      【AHB,Advanced High-Performence Bus,先进高性能总线;APB2,Advanced Peripheral Bus1,先进外设总线1;APB1,Advanced Peripheral Bus2,先进外设总线2】
      STM32F103系列一般的时钟配置:
      PLLCLK=SYSCLK=HCLK=PCLK2=72MHZ; (锁相环时钟=系统时钟=高性能时钟=外设时钟2=72MHZ)
      PCLK1=HCLK/2=36MHZ;(外设时钟1=高性能时钟/2=36MHZ)
  • 时钟树(《STM32F10X-中文参考手册》图8,参考手册下载)
    在这里插入图片描述
  1. PLL输入时钟(Phase Lock Loop,锁相环:一种电子控制系统,用于生成与输入信号频率和相位相关的输出信号)
    在这里插入图片描述
  • PLL输入时钟有两个选择:
    • HSE:High Speed External Clock Signal,高速外部时钟信号,可以由有源晶振或无源晶振提供。当使用有源晶振时,时钟从OSC_IN引脚进入,OSC_OUT引脚悬空;当使用无源晶振时,时钟从OSC_IN和OSC_OUT引脚进入,并要配谐振电容。【Crystal Oscillator 晶振,晶体振荡器】
    • HSI/2 :High Speed Internal Clock Signal,高速内部时钟信号,频率为8MHz。根据温度和环境的情况会有漂移,一般不作为PLL的时钟源。
    • 具体选择哪个输入时钟由时钟配置寄存器(RCC_CFGR)的16位来设置;当选择HSE作为输入时钟时,是否2分频由时钟配置寄存器(RCC_CFGR)的17位来设置.如下图所示(《STM32F10X-中文参考手册》62页)
      在这里插入图片描述
  1. SYSCLK系统时钟
    在这里插入图片描述
  • SYSCLK的输入时钟有3个选择:
    • PLLMUL:锁相环经过倍频后的输出时钟。通过设置PLL的倍频因子,可以对PLL的输入时钟进行倍频,倍频因子可以是[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],具体设置成多少,由时钟配置寄存器(RCC_CFGR)的位21:18设置,具体如下图所示(《STM32F10X-中文参考手册》62页)。我们这里设置9倍频,PLL的输出时钟:8M*9=72MHz。72MHz是ST官方推荐的稳定运行时钟。
      在这里插入图片描述
    • HSE:同上;
    • HSI:同上;
  1. AHB总线时钟HCLK
    在这里插入图片描述
  • 系统时钟SYSCLK经过AHB预分频器分频后得到的时钟叫AHB时钟,即HCLK。AHB预分频器的分频因子可以是[1,2,4,8,16,64,128,256,512],具体由时钟配置寄存器(RCC_CFGR)的位7:4设置,具体如下图所示(《STM32F10X-中文参考手册》63页)。我们这里设置为1分频,即HCLK=SYSCLK=72MHz。
    在这里插入图片描述
  1. APB2总线时钟PCLK2
    在这里插入图片描述
    • APB2总线时钟PCLK2由HCLK经过APB2预分频器得到,分频因子可以是[1,2,4,8,16],具体由时钟配置寄存器(RCC_CFGR)的位13:11设置,具体如下图所示(《STM32F10X-中文参考手册》62页)。PCLK2属于高速总线时钟,片上高速外设就挂载在这条总线上,例如:全部的GPIO、USART1、SPI1等。我们这里设置为1分频,即PCLK2=HCLK=72MHz。
      在这里插入图片描述
  1. APB1总线时钟PCLK1
    在这里插入图片描述
  • APB1总线时钟PCLK1由HCLK经APB1预分频器得到,分频因子可以是[1,2,4,8,16],具体由时钟配置寄存器(RCC_CFGR)的位10:8设置,具体如下图所示(《STM32F10X-中文参考手册》63页)。PCLK1属于低速的总线时钟,最高为36MHz,片上低速的外设就挂载在这条总线上,例如:USART2/3/45、SPI2/3、I2C1/2等。我们这里设置为2分频,即PCLK1=HCLK/2=26MHz。
    在这里插入图片描述
  1. USB时钟
    在这里插入图片描述
  • USB时钟是由PLLCLK经过USB预分频器得到,分频因子可以是[1,1.5],具体由时钟配置寄存器(RCC_CFGR)的位22设置,具体如下图所示(《STM32F10X-中文参考手册》63页)。USB最高时钟是48MHz,根据分频因子反推PLLCLK只能是48MHz或72MHz。一般设置PLLCLK=72MHz,USBCLK=48MHz。【注意:USB对视中要求比较高,所以PLLCLK只能由HSE倍频得到,不能使用HSI倍频】
    在这里插入图片描述
  1. Cortex系统时钟
    在这里插入图片描述
  • Cortex系统时钟由HCLK8分频得到,等于9MHz,用来驱动内核的系统定时器SysTick。SysTick一般用于操作系统的时钟节拍,也可以用作普通的定时。
  1. ADC时钟
    在这里插入图片描述
  • ADC时钟由PCLK2经过ADC预分频器得到,分频因子可以是[2,4,6,8],具体由时钟配置寄存器(RCC_CFGR)的位15:14设置,具体如下图所示(《STM32F10X-中文参考手册》62页)。ADC时钟最高只能是14MHz
    在这里插入图片描述
  1. RTC时钟
    在这里插入图片描述
  • RTC时钟的输入时钟有三个选择:HSE/128、LSE(32.768KHz)、LSI。具体选用哪个时钟由备份域控制寄存器 (RCC_BDCR)位9:8设置,具体如下图所示(《STM32F10X-中文参考手册》74页)。
    在这里插入图片描述
  1. 独立看门狗时钟
    在这里插入图片描述
  • 独立看门狗时钟由LSI提供,且只能由LSI提供,LSI是低速的内部时钟信号,频率为30~60KHz,一般取40KHz.
  1. MCO时钟输出
    在这里插入图片描述
  • MCO,Microcontroller clock output,微控制器时钟输出引脚,在STM32F1系列中由PA8复用得到,主要作用是对外提供时钟,相当于一个有源晶振。MCO的时钟源有4个选择:PLLCLK/2、HSI、HSE、SYSCLK,具体由时钟配置寄存器(RCC_CFGR)的位26:24设置,具体如下图所示(《STM32F10X-中文参考手册》62页)。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/62121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安防视频监控平台Liveweb视频汇聚管理系统管理方案

智慧安防监控Liveweb视频管理平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。国标GB28181协议视频监控/视频汇聚Liveweb平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、…

PostGIS的历史发展

自从 GIS 软件开发以来,ShapeFile等格式被广泛用于存储空间数据,但这些文件格式文件需要特殊的软件才能读取和写入,并发用户可能会导致数据损坏和速度变慢,并且复杂的问题需要复杂的软件来处理。 因此,对多用户的支持、…

【目标跟踪】AntiUAV600数据集详细介绍

AntiUAV600数据集的提出是为了适应真实场景,即无人机可能会随时随地出现和消失。目前提出的Anti-UAV任务都只是将其看做与跟踪其他目标一样的任务,没有结合现实情况考虑。 论文链接:https://arxiv.org/pdf/2306.15767https://arxiv.org/pdf/…

“原批教育家”原批之星鲁健的杰作——原批俱乐部

伟大的原批教育家——原批之星,名为鲁健,是一位在南京邮电大学智能科学与技术专业中崭露头角的杰出人物。他不仅以其卓越的黑客技术和对网络正义的执着而闻名,更是“远古四神”之一,以其对原批之力的深刻理解和不同见解&#xff0…

IS-IS三

目录 点到点邻接关系建立 ISIS修改链路类型 isis ppp-negotiation 3-way only 仅才用三次握手建立邻居 不向下兼容两次握手 两次握手 自身发送的(Hello报文)IIH 不携带 p2p adj TLV 不处理点到点邻接状态TLV 三次握手 …

Hadoop生态圈框架部署 伪集群版(四)- Zookeeper单机部署

文章目录 前言一、Zookeeper单机部署(手动部署)1. 下载Zookeeper安装包到Linux2. 解压zookeeper安装包3. 配置zookeeper配置文件4. 配置Zookeeper系统环境变量5. 启动Zookeeper6. 停止Zookeeper在这里插入图片描述 注意 前言 本文将详细介绍Zookeeper的…

Spring的三层架构实现原理

Spring三层架构实现 三层架构 controller: 控制层,接受前端发送的请求,对请求进行处理并相应数据;service: 业务逻辑层,处理具体的业务逻辑;dao: 数据访问层(Data Access Object) 持久层,负责数据访问操作,包括数据的增、删、改、查。controller 层: @RestContro…

《Java核心技术I》volatile字段

volatile字段 有多处理器的计算机能够暂时在寄存器或本地内存缓存中保存内存值,其结果是,运行在不同处理器上的线程可能看到同一个内存位置上有不同的值。编译器可以改变指令执行的顺序以使吞吐量更大化,编译器不会选择可能改变代码语义的顺…

基于springboot+vue的车辆违章信息管理系统(全套)

一、系统架构 前端:vue | element-ui | html 后端:springboot | mybatis-plus 环境:jdk1.8 | mysql | maven | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页 02. web端-注册 03. web端-登录 04. web端-公告 05. web端-留言…

利用断开的域管理员RDP会话提权

前言 当域内管理员登录过攻击者可控的域内普通机器运维或者排查结束后,退出3389时没有退出账号而是直接关掉了远程桌面,那么会产生哪些风险呢?有些读者第一个想到的肯定就是抓密码,但是如果抓不到明文密码又或者无法pth呢&#x…

【Unity 动画】设置跟运动(Apply Root)模型跟着动画产生位移

一、导入的动画本身必须有跟随动画产生位移或者旋转的效果 二、导入Unity后 在Unity中,根运动(Root Motion)是指动画中角色根节点的移动和旋转。根节点通常是角色的根骨骼(Root Bone),它决定了角色的整体…

轻松上手使用Vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式和库。它主要用于管理应用程序中的全局状态,提供一个集中式存储库,并且以可预测的方式来更新这些状态。以下是 Vuex 的基本用法和一些关键概念: 1.安装 Vuex 首先,需要在 Vue…

【设计模式】装饰器模式 在java中的应用

文章目录 1. 引言装饰器模式的定义与设计目的装饰器模式与其他设计模式的比较 2. 装饰器模式的结构组件接口(Component)具体组件(ConcreteComponent)装饰角色(Decorator)具体装饰类(ConcreteDec…

vue npm install出现问题

报错如下: ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: web-ifc-viewer1.0.218 npm ERR! Found: three0.149.0 npm ERR! node_modules/three npm ERR! peer three">0.126.1" from camera-controls…

爬虫项目练手

python抓取优美图库小姐姐图片 整体功能概述 这段 Python 代码定义了一个名为 ImageDownloader 的类,其主要目的是从指定网站(https://www.umei.cc)上按照不同的图片分类,爬取图片并保存到本地相应的文件夹中。不过需要注意&…

对比json数据是否变化

在 JavaScript 中,你可以使用多种方法来对比两个 JSON 数据是否发生变化。以下是几种常见的方式: 1. 使用 JSON.stringify 最简单的方法是将两个 JSON 对象序列化为字符串,并比较这些字符串。但需要注意的是,这种方法对于对象属…

C++设计模式:代理模式(Proxy)(附案例代码)

什么是代理模式? 代理模式是一种结构型设计模式,主要用于为某个对象提供一个代理,以便在不直接访问对象的情况下控制对其的访问。代理可以在客户端和目标对象之间起到一个中介的作用,添加一些额外的操作,例如权限控制…

【笔记】软技能

硬技能:操控世界的能力,处理对象为【物】。软技能:影响他人的能力,处理对象为【人】。软技能包括一个人的情商、个性、社交礼仪、沟通、语言、个人习惯,还有解决问题的能力、领导能力、时间管理能力等一切非技术能力。…

uni-app简洁的移动端登录注册界面

非常简洁的登录、注册界面模板&#xff0c;使用uni-app编写&#xff0c;直接复制粘贴即可&#xff0c;无任何引用&#xff0c;全部公开。 废话不多说&#xff0c;代码如下&#xff1a; login.vue文件 <template><view class"content"><view class&quo…

单台服务器上创建多个端口MySQL服务

单台服务器上创建多个端口MySQL服务 直接拷贝已经运行的数据库文件: # ll /data/mysql/ 总用量 204 drwxr-x--- 2 mysql mysql 4096 9月 15 2023 bin -rw-r--r-- 1 mysql mysql