当前位置: 首页 > news >正文

半小时搞懂STM32面经知识——RCC

1. 时钟的概念

时钟是由电路产生的具有周期性的脉冲信号,相当于单片机的心脏,要想使用单片机的外设必须开启时钟。

时钟对单片机有什么作用?

        1. 驱动外设的本质是寄存器,而寄存器需要时钟触发才能改写值。

        2. 时钟频率越高,CPU在相同的时间能够执行更多的指令,运行速度更快。

2. 时钟树

 STM32微控制器芯片上的时钟分配和控制结构,它定义了各种时钟源、时钟分频、时钟分配等,形成一个树状结构

时钟树的作用?

1. 给相对独立的外设模块提供时钟,不同的外设需要的时钟频率不一致,需要通过时钟树分配相应的时钟。

 2. 降低整个芯片的功耗所有外设时钟默认都是关闭状态(disable)当我们使用某个外设就要开启这个外设的时钟(enable) ,没有让所有外设都使用高速时钟造成浪费。 

2.1 时钟源

STM32总共有四个时钟源为什么要有四个时钟源,兼容不同速度的外设, STM32的四个时钟源分别为HSE, LSE, HSI, LSI。

HSE时钟:高速的外部时钟。

来源: 无源晶振,通常使用8M, STM32F1系列为(4~16M)

作用:可不分频或2分频(频率/2)作为PLL锁相环的输入,还可直接不分频作为系统时钟,128分频作为外设RTC时钟的输入

HSI时钟: 高速的内部时钟

来源: 芯片内部,大小为8M,当HSE故障时,系统时钟会自动切换到HSI,直到HSE启动成功。

作用: 可直接作为系统时钟或在2分频后作为PLL输入。HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振荡器短。然而,即使在校准之后它的时钟频率精度仍较差。

LSE: 低速的外部时钟

来源:芯片内部,LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。 

作用: 直接作为RTC的时钟来源

LSI: 低速的内部时钟

来源: 内部芯片,LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,LSI时钟频率大约40kHz(在30kHz和60kHz之间)。

作用: 为独立看门狗自动唤醒单元(RTC)提供时钟。

2.2 锁相环时钟PLLCLK

锁相环时钟:PLLCLK

来源: 选择HIS振荡器除2或HSE振荡器为PLL的输入时钟,和选择倍频因子,必须在其被激活前完成。一旦PLL被激活,这些参数就不能被改动。

作用: 内部PLL可以用来倍频HSI的输出时钟或HSE晶体输出时钟(倍频数2~16倍),而经过倍频变成PLLCLK可以作为系统时钟源

注意: PLL时钟源头使用HIS/2的时候,PLLMUL最大只能 是16,这个时候PLLCLK最大只能是64M,小于ST官方推 荐的最大时钟72M。如果需要在应用中使用USB接口,PLL必须被设置为输出48或72MHZ时钟,用于提供48MHz的USBCLK时钟。

2.3 系统时钟

系统时钟:SYSCLK系统时钟是时钟树的最终输出,它是整个微控制器系统的主时钟。

来源:HSI,HSE,PLLCLK

注意:F103通常的配置是SYSCLK = PLLCLK=72M(最大的时钟频率, STM32官方推荐)

通常系统时钟配置的输出流程:

2.4 HCLK时钟

HCLK: AHB高速总线时钟,速度最高为72MHZ

来源: 系统时钟分频得到,一般设置HCLK=SYSCLK=72M

作用: 为AHB总线的外设提供时钟、为Cortex系统定时器提供时钟(SysTick)、为内核提供时钟(FCLK)。

2.5 PCLK1时钟

PCLK1: APB1低速总线时钟,最高为36MHZ。

来源: HCLK分频得到,一般配置PCLK1 = HCLK/2 = 36MHZ。

作用: 为APB1总线的外设提供时钟。1或2倍频之后则为APB1总线的定时器2~7提供时钟,最大为72M。

2.6 PCLK2时钟

PCLK2: APB2高速总线时钟,最高为72MHZ

来源: HCLK分频得到,一般配置PCLK1=HCLK=72M

作用: 为APB2总线的外设提供时钟。为APB2总线的定时器1和8提供时钟,最大为72M。APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。

2.7 RTC时钟

RTC:实时时钟。

来源:HSE分频得到, LSE、 LSI

作用:它拥有一组连续计数的计数器,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。实质上它是一个掉电后还可以继续运行的定时器。

相关文章:

半小时搞懂STM32面经知识——RCC

1. 时钟的概念 时钟是由电路产生的具有周期性的脉冲信号,相当于单片机的心脏,要想使用单片机的外设必须开启时钟。 时钟对单片机有什么作用? 1. 驱动外设的本质是寄存器,而寄存器需要时钟触发才能改写值。 2. 时钟频率越高&#…...

汇聚荣科技:拼多多开店没有流量应该怎么办?

拼多多开店没有流量是一个常见的问题,许多新手商家都会遇到这样的困境。那么,如何解决这个问题呢?下面从四个方面进行详细阐述。 一、优化店铺和商品 首先,要确保店铺和商品的质量。店铺要有自己独特的风格和特色,商品要有高质量…...

uni-app(三):离线打包与插件引用(Android)

离线打包与插件引用 1.下载Android离线SDK2.使用Android Studio打开离线打包项目并更新Gradle3.解决报错4.构建5.配置AppKeya.查看证书b.申请AppKeyc.配置AppKey 6.生成本地打包App资源7.拷贝App资源到Android项目中8.修改 appid9.修改Android项目配置文件10.下载证书并配置11.…...

数据分析——对比思维、A/B test

对比分析 数据大小 :与中值、平均值、目标值、标准做对比数据波动:变异系数、方差、标准差数据趋势:时间维度和空间维度 其中 时间维度 横向比较(连续7天每天的销售量) 纵向比较(同一时期不同品类对比&…...

深度探索Java工厂模式:创新与灵活性的结合

在软件设计中,有效地组织对象的创建过程是至关重要的。Java工厂模式是一种优秀的设计模式,它能够在对象创建的过程中提供更大的灵活性和可扩展性。本文将深入探讨工厂模式的不同实现方式,并提供详细的代码示例,以帮助读者更好地理…...

delphi6直连redis服务(用lua脚本redis模块)

一、创建一个exe程序 创建一个exe程序,引用LuaRedis.pas单元(此单元自己封装的代码,目前主要封装了获取key和设置key/value功能),代码如下: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variant…...

嵌入式Linux:编译和使用Protobuf库

目录 1、开发环境和工具 2、安装和编译Protobuf、Protobuf-C库 3、编写和编译proto文件 4、修改makefile文件 5、测试示例 6、参考资料 Protobuf(Protocol Buffers)是由 Google 开发的一种轻量级、高效的结构化数据序列化方式,用于在不同应用…...

导航app为什么知道还有几秒变绿灯?

在使用地图导航app行驶至信号灯的交叉路口时,这些应用程序会贴心地告知用户距信号灯变化还有多少秒,无论是即将转为绿灯还是红灯。这一智能化提示不仅使得驾驶员能适时做好起步或刹车的准备,有效缓解了因等待时间不确定而产生的焦虑情绪&…...

设计模式 六大原则之单一职责原则

文章目录 概述代码例子小结 概述 先看下定义吧,如下: 单一职责原则的定义描述非常简单,也不难理解。一个类只负责完成一个职责或者功能。也就是说在类的设计中, 我们不要设计大而全的类,而是要设计粒度小、功能单一的类。 代码例…...

DOM重点核心(注册事件+DOM事件流)

目录 1.注册事件 注册时间概述 addEventListener() 删除事件 2.DOM事件流 DOM事件流理论 事件对象 事件对象的常见属性和方法 e.targe 和 this的区别 阻止默认行为 阻止冒泡 事件委托 禁止右键菜单和禁止选中文字 获得鼠标的坐标(可视区、页面、浏览器…...

浅谈操作系统中的重要概念——线程(3)——设计模式

文章目录 一、什么是设计模式?二、单例模式2.1、饿汉模式2.2、懒汉模式2.3、多线程情况下调用 饿汉模式与懒汉模式 谁是安全的??(重点) 三、工厂模式3.1、什么是工厂模式?3.1.1、构造方法存在的缺陷3.1.1.1…...

nginx配置域名与IP访问服务冲突问题

在最近的一次开发中遇到一个问题,我在云服务器上部署了两个服务,A服务和B服务, A服务在服务器中用的端口是80端口,所以我在浏览器访问的地址就是 B服务在服务器中用的是9818端口,所以我在浏览器访问的是 现在我给B服务…...

2024OD机试卷-字符串序列判定 (java\python\c++)

题目:字符串序列判定 题目描述 输入两个字符串 S 和 L ,都只包含英文小写字母。S长度 ≤ 100,L长度 ≤ 500,000。判定S是否是L的有效子串。 判定规则:S 中的每个字符在 L 中都能找到(可以不连续),且 S 在L中字符的前后顺序与 S 中顺序要保持一致。(例如,S = ” ace…...

7-128 最长公共子串

一个序列中去掉若干(也可以不去掉)元素剩下的部分称为其子序列。对于给定的序列X = <x1​,x2​,…,xm​>,称序列Z = <z1​,z2​,…,zk​>为X的一个子序列,仅当在X中存在一个递增序号序列<i1​,i2​,…,ik​>,对所有的j(1,2,…,k)满足 xij…...

【瑞萨RA6M3】2. UART 实验

https://blog.csdn.net/qq_35181236/article/details/132789258 使用 uart9 配置 打印 void hal_entry(void) {/* TODO: add your own code here */fsp_err_t err;uint8_t c;/* 配置串口 */err g_uart9.p_api->open(g_uart9.p_ctrl, g_uart9.p_cfg);while (1){g_uart9.…...

js遇到需要正则匹配来修改img标签+清除行内样式

方法一 var regex0 new RegExp("(i?)(\<img)([^\>]\>)", "gmi") //正则匹配表达式this.newcontent this.content.replace(regex0,"$2 styledisplay:block;margin: auto;width:120px; $3") //下面这个则需要在$2 $3左右添加和修改东…...

Vue学习v-if与v-else-if

Vue学习v-if与v-else-if 一、前言1、v-if2、v-else-if3、v-else4、示例 一、前言 v-if 和 v-else-if 是 Vue.js 中用于条件渲染的指令&#xff0c;它们通常与 v-else 一起使用。下面我来详细解释一下它们的用法和区别&#xff1a; 1、v-if 用法&#xff1a;v-if 是一个指令&…...

linux进阶高级配置,你需要知道的有哪些2-firewalld防火墙(一)

1、防火墙的技术上分类&#xff1a; 包过滤&#xff1a;firewalld属于这种 应用代理&#xff1a; 状态检测&#xff1a;ASA 2、firewalld的两种配置模式&#xff1a; 运行时配置 &#xff1a;立即生效 永久配置&#xff1a;重新加载服务生效 3、常用的区域&#xff1a; trust…...

Centos 中如何汉化man命令

刚学Linux&#xff0c;记不住命令和选项&#xff0c;很依赖里面的 man 查看命令&#xff0c;但因为着实看不懂&#xff0c;有没有什么办法把man查看命令的信息改成中文 在CentOS 7中&#xff0c;你可以通过安装man-pages-zh包来获取中文的man手册。以下是具体的步骤&#xff1a…...

原生小程序开发如何使用 tailwindcss

原生小程序开发如何使用 tailwindcss 原生小程序开发如何使用 tailwindcss 前言什么是 weapp-tailwindcss ?0. 准备环境以及小程序项目1. 安装与配置 tailwindcss 0. 使用包管理器安装 tailwindcss1. 在项目目录下创建 postcss.config.js 并注册 tailwindcss2. 配置 tailwind…...

告别环境冲突:用快马平台标准化流程高效集成openclaw模型

在AI模型开发中&#xff0c;环境配置和模型部署往往是效率瓶颈。最近尝试用InsCode(快马)平台集成openclaw模型时&#xff0c;发现它通过标准化流程解决了三个关键痛点&#xff0c;分享下具体实践&#xff1a; 环境配置自动化 传统本地部署需要手动安装CUDA、PyTorch等依赖&…...

linux中systemctl详细理解及常用命令解析

一、systemctl理解Linux 服务管理两种方式service和systemctlsystemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度&#xff0c;尽可能启动较少的进程&#xff0c;尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl1. systemctl命令兼容了service即…...

FireRedASR Pro开箱即用:基于Streamlit的交互界面,操作超直观

FireRedASR Pro开箱即用&#xff1a;基于Streamlit的交互界面&#xff0c;操作超直观 1. 工具概览与核心优势 FireRedASR Pro是一款基于工业级语音识别模型开发的本地化工具&#xff0c;特别适合需要快速部署语音转文字功能的开发者和研究者。与传统的ASR解决方案相比&#x…...

2025_NIPS_HumanoidGen: Data Generation for Bimanual Dexterous Manipulation via LLM Reasoning

文章核心总结与翻译 一、主要内容 本文提出HumanoidGen,一款基于大语言模型(LLM)推理的自动化框架,专为类人机器人双手机动操作生成任务场景与演示数据。框架通过空间标注、LLM规划、蒙特卡洛树搜索(MCTS)增强推理等模块,解决现有数据集缺乏双手机动操作场景、数据收集…...

如何通过QtScrcpy实现跨平台键鼠映射?4个技术要点让PC精准操控Android游戏

如何通过QtScrcpy实现跨平台键鼠映射&#xff1f;4个技术要点让PC精准操控Android游戏 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy QtScrcpy作为一款开源的Android设备投屏与控制…...

打卡信奥刷题(3057)用C++实现信奥题 P6786 「SWTR-6」GCD LCM

P6786 「SWTR-6」GCD & LCM 题目描述 小 A 有一个长度为 nnn 的序列 a1,a2,⋯,ana_1,a_2,\cdots,a_na1​,a2​,⋯,an​。 他想从这些数中选出一些数 b1,b2,⋯,bkb_1,b_2,\cdots,b_kb1​,b2​,⋯,bk​ 满足&#xff1a;对于所有 i(1≤i≤k)i\ (1\leq i\leq k)i (1≤i≤k)…...

Phi-3-mini-4k-instruct-gguf实战教程:集成到Notion插件实现笔记自动摘要

Phi-3-mini-4k-instruct-gguf实战教程&#xff1a;集成到Notion插件实现笔记自动摘要 1. 项目背景与目标 你是否经常在Notion中积累了大量笔记&#xff0c;却苦于没有时间整理和提炼关键信息&#xff1f;本文将带你一步步将Phi-3-mini-4k-instruct-gguf模型集成到Notion插件中…...

零基础5分钟部署AI股票分析师:Ollama本地大模型一键生成专业报告

零基础5分钟部署AI股票分析师&#xff1a;Ollama本地大模型一键生成专业报告 1. 为什么你需要一个本地AI股票分析师 在金融投资领域&#xff0c;及时获取专业分析报告是做出明智决策的关键。但传统方式存在几个痛点&#xff1a; 数据隐私问题&#xff1a;使用在线分析工具需…...

比迪丽WebUI企业部署方案:K8s集群化管理+GPU资源弹性调度

比迪丽WebUI企业部署方案&#xff1a;K8s集群化管理GPU资源弹性调度 1. 引言&#xff1a;从单机到集群&#xff0c;企业级AI绘画的必经之路 如果你用过比迪丽WebUI&#xff0c;肯定体验过它生成动漫角色的强大能力。输入几个关键词&#xff0c;等上几秒钟&#xff0c;一张精美…...

Qwen3-Reranker-0.6B部署实战:从零开始到成功调用

Qwen3-Reranker-0.6B部署实战&#xff1a;从零开始到成功调用 1. 认识Qwen3-Reranker-0.6B 1.1 模型核心能力 Qwen3-Reranker-0.6B是Qwen家族最新推出的文本重排序模型&#xff0c;专为提升文本检索质量而设计。这个0.6B参数的模型虽然体积适中&#xff0c;但在多语言文本排…...