网站在线制作生成/千锋教育靠谱吗
目录
前言
STM32第九节(中级篇):RCC——时钟树讲解
时钟树主系统时钟讲解
HSE时钟
HSI时钟
锁相环时钟
系统时钟
SW位控制
HCLK时钟
PCLKI时钟
PCLK2时钟
RTC时钟
MCO时钟输出
6.2.7时钟安全系统(CSS)
小结
前言
从本章开始,我们就已经开始了中级篇的学习。在这一阶段,我们主要学习时钟RCC,中断定时器,串口通信,DMA,读写EEPROM,读写串行Flash以及FatFs的知识点,整体难度又上升了一部分。所以之前的代码功底,C语言编写能力以及单片机的使用至关重要。如果想学习的同学们可以观看我之前写的初级篇的内容。
创作不易,点个三连支持一下吧!
STM32第九节(中级篇):RCC——时钟树讲解
本节课我们讲RCC——复位和时钟控制。复位部分比较简单,我们本节课主要讲时钟部分。如下图就是时钟树的原理图。在讲完课程之后,我们要自己写一个系统使用的配置函数并实现超频工作。官方F103系列的时钟为72M,我们可以配置为128M,为极限频率。
时钟树主系统时钟讲解
HSE时钟
该时钟为外部的高速时钟,如图所示,他靠的是OSC_IN以及OSC_OUT进行输入以及输出,来源呢是无源晶振(4~16M)我们通常使用8M。关于控制是RCC_CR时钟控制寄存器的位16:HSEON控制。我们可以看到,在下图中有两个起振电容,大小为20PF。与之相匹配的还有HSI在内部做时钟,两者的区别为HSE精度比较高,而LSE受温度影响,会有偏差。
HSI时钟
高速的内部时钟,大小为8M,当HSE故障时,系统时钟会自动切换到HSI,直到HSE启动成功。而控制它的是RCC_CR 时钟控制寄存器的位0:HSION控制。这里要注意一下,HSE时钟的8M在经过倍频9倍后配置为72M,而如果启动了HSI时钟,则一直为8M,无法正常完成工作。
锁相环时钟
来源 : (HSI/2、HSE)经过倍频所得。
控制:CFGR:PLLXTPRE、PLLMUL口注意:PLL时钟源头使用HIS/2的时候,PLLMUL最大只能是16,这个时候PLLCLK最大只能是64M,小于ST官方推荐的最大时钟72M。
我们观察发现,在HSE时钟进去之后,会有一个二分频和一个不分频的线路,与这根不分频线路相接的就是锁相环时钟源PLLSRC,除了这跟线路,还有一根就是HSI的二分频线路,8M被分频为4M接入PLLSRC。相对应的寄存器为RCC_CFGR寄存器的第十七位PLLXTPRE。
PLLXTPRE: HSE分频器作为PLL输入(HSE divider for PLL entry)由软件置'1'或清”0'来分频HSE后作为PLL输入时钟。只能在关闭PLL时才能写入此位。0:HSE不分频,1:HSE 2分频。
PLLSRC: PLL输入时钟源(PLLentryclock source)由软件置"1'或清'0'来选择PLL输入时钟源,只能在关闭PLL时才能写入此位。0:HSI振荡器时钟经2分频后作为PLL输入时钟,1:HSE时钟作为PLL输入时钟。
系统时钟
我们可以看到,对于系统时钟来说,有三种方式可以配置系统时钟输入:HSI和HSE直接输入以及PLLCLK锁相环时钟配置,一般就是用锁相环时钟配置时钟为72M.,他就由SW位来控制。
SW位控制
SW[1:0]:系统时钟切换(System clock switch)由软件置'1'或清’0'来选择系统时钟源。在从停止或待机模式中返回时或直接或间接作为系统时钟的HSE出现故障时,由硬件强制选择HSI作为系统时钟(如果时钟安全系统已经启动)。
00:HSI作为系统时钟:
01:HSE作为系统时钟:
10:PLL输出作为系统时钟;
11:不可用。
而相应的寄存器位SWS位也会配置为1:
我们一般把SW配置为10,PLL输出。然后我们读取SWS位是否为10,来判断我们是否时钟切换完毕。
HCLK时钟
HCLK:AHB高速总线时钟,速度最高为72M。为AHB总线的外设提供时钟、为Cortex系统定时器提供时钟(SysTick)、为内核提供时钟(FCLK)。
来源:系统时钟分频得到,一般设置HCLK=SYSCLK=72M。
控制:CFGR:HPRE。
PCLKI时钟
PCLK1:APB1低速总线时钟,最高为36M。为APB1总线的外设提供时钟。2倍频之后则为APB1总线的定时器2-7提供时钟,最大为72M。
来源:HCLK分频得到,一般配置PCLK1=HCLK/2=36M
控制:RCC CFGR 时钟配置寄存器的PPRE1位
PCLK2时钟
PCLK2:APB2高速总线时钟,最高为72M。为APB1总线的外设提供时钟。为APB1总线的定时器1和8提供时钟,最大为72M。
来源:HCLK分频得到、一般配置PCLK1=HCLK=72M
控制 : RCC CFGR 时钟配置寄存器的PPRE2位
当APB2配置为72M的时候,通过ADC预分频器最大为14MHz,而在不超频的前提下,最大放大倍数为4倍。
RTC时钟
RTC时钟:为芯片内部的RTC外设提供时钟口来源:HSE RTC(HSE分频得到)、LSE(外部32.768KHZ的晶体提供)、LSI(32KHZ)
控制:RCC备份域控制寄存器RCC BDCR:RTCSEL位控制
独立看门狗时钟:IWDGCLK,由LSI提供
除了HSE提供的128分之一,还有LSE时钟提供的32.768KHz,还有一个40KHzz的LSI HIC。我们可以发现,在LSE时钟中,有两个接口,分别为OSC32_IN以及OSC32_OUT,如图所示:
MCO时钟输出
MCO微控制器时钟输出引脚,由PA8复用所得。
来源:PLLCLK/2,HSE、HSI、SYSCLK
控制:CRGR以及MCO
6.2.7时钟安全系统(CSS)
时钟安全系统可以通过软件被激活。一旦其被激活,时钟监测器将在HSE振荡器启动延迟后被使能,并在HSE时钟关闭后关闭。
如果HSE时钟发生故障,HSE振荡器被自动关闭,时钟失效事件将被送到高级定时器(TIM1和TIM8)的刹车输入端,并产生时钟安全中断CSSI,允许软件完成营救操作。此CSSI中断连接到CortexTm-M3的NM|中断(不可屏蔽中断)。一旦CSS被激活,并目HSE时钟出现故障,CSS中断就产生,并且NMI也自动产生。NMI将被不断执行,直到CSS中断挂起位被清除。因此,在NMI的处理程序中必须通过设置时钟中断寄存器(RCC CIR)里的CSSC位来清除CSS中断。
如果HSE振荡器被直接或间接地作为系统时钟,(间接的意思是:它被作为PLL输入时钟,并且PLL时钟被作为系统时钟),时钟故障将导致系统时钟自动切换到HSI振荡器,同时外部HSE振荡器被关闭。在时钟失效时,如果HSE振荡器时钟(被分频或未被分频)是用作系统时钟的PLL的输入时钟,PLL也将被关闭。
小结
本节课我们讲述了功能框图,下节课我们讲这个系统使用配置代码部分。
相关文章:

STM32第九节(中级篇):RCC(第一节)——时钟树讲解
目录 前言 STM32第九节(中级篇):RCC——时钟树讲解 时钟树主系统时钟讲解 HSE时钟 HSI时钟 锁相环时钟 系统时钟 SW位控制 HCLK时钟 PCLKI时钟 PCLK2时钟 RTC时钟 MCO时钟输出 6.2.7时钟安全系统(CSS) 小结 前言 从…...

Web核心,HTTP,tomcat,Servlet
1,JavaWeb技术栈 B/S架构:Browser/Server,浏览器/服务器架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web资源,服务器把Web资源…...

空间(Space)概念:元素、集合、空间和数学对象
摘要: 在数学中,一个空间(Space)是一种特殊类型的数学对象。它通常是一个集合,但不仅仅是一个普通的集合,而是具有某种附加的结构和定义在其上的运算规则。这些额外的结构使得空间能够反映现实世界中的几何…...

【Datawhale组队学习:Sora原理与技术实战】训练一个 sora 模型的准备工作,video caption 和算力评估
训练 Sora 模型 在 Sora 的技术报告中,Sora 使用视频压缩网络将各种大小的视频压缩为潜在空间中的时空 patches sequence,然后使用 Diffusion Transformer 进行去噪,最后解码生成视频。 Open-Sora 在下图中总结了 Sora 可能使用的训练流程。…...

Kafka-生产者报错javax.management.InstanceAlreadyExistsException
生产者发送消息到 kafka 中,然后控制台报错 然后根据日志查看 kafka 的源码发现了问题原因 说的是MBean已经注册了,然后报异常了,这样就会导致生产者的kafka注册失败, 原因是项目上生产者没有配置clientId,默认都是空导致的, 多个生产者(项目)注册到kafka集群中的 id 都相同。 …...

Java常见问题:编辑tomcat运行环境、部署若伊系统
文章目录 引言I Eclipse1.1 编辑tomcat运行环境II JDK2.1 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接2.2 restriction on required library2.3 The type javax.servlet.http.HttpServletRequest cannot be resolved.的解决方法III npm3.1 npm报错:…...

阿里云免费证书改为3个月,应对方法很简单
情商高点的说法是 Google 积极推进90天免费证书,各服务商积极响应。 情商低点的话,就是钱的问题。 现在基本各大服务商都在2024年停止签发1年期的免费SSL证书产品,有效期都缩短至3个月。 目前腾讯云倒还是一年期。 如果是一年期的话&#x…...

安装Pytorch——CPU版本
安装Pytorch——CPU版本 1. 打开pytorch官网2. 选择pip安装pytorch-cpu3.复制安装命令4. 在cmd命令窗口,进入你的虚拟环境4.1 创建虚拟环境4.2 进行安装 5. 安装成功6. 进行测试——如下面步骤,如图6.1 输入 python6.2 输入 import torch6.2 输入 print …...

MySQL中出现‘max_allowed_packet‘ variable.如何解决
默认情况下,MySQL的max_allowed_packet参数可能设置得相对较小,这对于大多数常规操作来说足够了。但是,当你尝试执行包含大量数据的操作(如大批量插入或大型查询)时,可能会超过这个限制,从而导致…...

PHP 生成图片
1.先确认是否有GD库 echo phpinfo(); // 创建一个真彩色图像 $image imagecreatetruecolor(120, 50);// 分配颜色 $bgColor imagecolorallocate($image, 255, 255, 255); // 白色背景 $textColor imagecolorallocate($image, 230, 230, 230); // 黑色文字// 填充背景 image…...

【Spring Boot 3】【JSON】读取JSON文件
【Spring Boot 3】【JSON】读取JSON文件 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花…...

网络学习:邻居发现协议NDP
目录 前言: 一、报文内容 二、地址解析----NS/NA 目标的被请求组播IP地址 邻居不可达性检测: 重复地址检测 路由器发现 地址自动配置 默认路由器优先级和路由信息发现 重定向 前言: 邻居发现协议NDP(Neighbor Discovery…...

Spring事务传播行为总结
事务传播行为介绍 Spring中的7个事务传播行为: 事务行为说明特点PROPAGATION_REQUIRED支持当前事务,假设当前没有事务。就新建一个事务父事务与子事务要么都成功,要么都失败PROPAGATION_SUPPORTS支持当前事务,假设当前没有事务࿰…...

AWTK slider_circle 控件发布
slider_circle 控件。 主要特色: 支持正向和反向支持设置滑块的半径支持背景线宽和颜色支持前景线宽和颜色支持设置是否显示值的文本支持设置起始角度和结束角度支持设置格式化值的格式字符串支持使用图片填充背景和前景 界面效果: 注意: …...

BitMap 和 HyperLogLog
目录 BitMap 常用命令 应用场景 日活统计 用户签到 HyperLogLog 什么是基数? 常用命令 应用场景 BitMap 问: "有10亿个不重复的无序的正数,如果快速排序?" 这看上去很简单,就是一个排序而已,但是大部分排序算…...

德人合科技 | 公司办公终端、电脑文件资料 \ 数据透明加密防泄密管理软件系统
天锐绿盾是一款全面的企业级数据安全解决方案,它专注于为企业办公终端、电脑文件资料提供数据透明加密防泄密管理。 首页 德人合科技——www.drhchina.com 这款软件系统的主要功能特点包括: 1. **透明加密技术**: 天锐绿盾采用了透明加密技…...

0基础 三个月掌握C语言(11)
字符函数和字符串函数 为了方便操作字符和字符串 C语言标准库中提供了一系列库函数 接下来我们学习一下这些函数 字符分类函数 C语言提供了一系列用于字符分类的函数,这些函数定义在ctype.h头文件中。这些函数通常用于检查字符是否属于特定的类别,例如…...

【Linux】基础 IO(文件描述符)-- 详解
一、前言 1、文件的宏观理解 文件在哪呢? 从广义上理解,键盘、显示器、网卡、声卡、显卡、磁盘等几乎所有的外设都可以称之为文件,因为 “Linux 下,一切皆文件”。 从狭义上的理解,文件在磁盘(硬件&#…...

如何降低云计算成本?
降低云计算成本的方法有很多,以下是一些关键的策略和建议: 优化资源使用: 自动缩放:根据工作负载的需求自动调整计算资源的大小。对于不需要大量扩展的低优先级工作负载,可以设置性能限制,并在适当的情况下…...

C# 打开文件对话框(OpenFileDialog)
OpenFileDialog:可以打开指定后缀名的文件,既能单个打开文件也能批量打开文件 /// <summary>/// 批量打开文档/// 引用:System.Window.Fomrs.OpenFileDialog/// </summary>public void OpenFile(){OpenFileDialog dialog new Op…...

《LeetCode热题100》笔记题解思路技巧优化_Part_3
《LeetCode热题100》笔记&题解&思路&技巧&优化_Part_3 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题链表🟢1. 相交链表🟢2. 反转链表&…...

Rocket MQ 从入门到实践
为什么要使用消息队列,解决什么问题?(消峰、解藕、异步) 消峰填谷 客户端》 网关 〉 消息队列》秒杀服务 异步解耦 消息队列中的重要概念理解。(主题、消费组、队列,游标?) 主题&…...

Vue中的Vnode虚拟Dom一文详解
VNode 是什么? VNode 是 Virtual Node 的缩写,它是 Vue.js 中用来描述真实 DOM 节点的对象。在 Vue 中,每个组件都会被渲染成一个 VNode 树,然后由虚拟 DOM 算法(Virtual DOM Algorithm)将其转化为真实的 …...

请求头content-type的类型有什么?
"Content-Type" 是 HTTP 请求头中的一个字段,用于指示发送给接收方的实体正文的媒体类型。常见的 "Content-Type" 类型包括但不限于以下几种: application/json: 用于指示请求或响应中的实体正文是 JSON 格式的数据。 ap…...

Javascript抓取京东、淘宝商品数据(商品采集商品详情图片抓取)
之前用的方法: let temp []var lists $(#J_goodsList li.gl-item)$.each(lists,function(idx,item){ temp.push({ id:$(item).data(sku), goods_img:$(item).find(img).attr(src), goods_name:$(item).find(.p-name em).text(), market_price:$(item).fi…...

Oracle 部署及基础使用
1. Oracle 简介 Oracle Database,又名 Oracle RDBMS,简称 Oracle Oracle系统,即是以Oracle关系数据库为数据存储和管理作为构架基础,构建出的数据库管理系统。是目前最流行的客户/服务器(client/server)或…...

ROS 语音交互(二)nlp
目录 背景: 一、模型选择 二、操作流程 三、核心代码展示 背景: 成功设置自己的知识库,语音交互问答会优先选择自己的知识库的答案进行回答,减少了耗时 一、模型选择 商汤 商量日日新 二、操作流程 文档中心 | 日日新开放…...

智慧公厕建设的主要目标是什么?
随着城市化进程的不断推进,公共厕所作为城市基础设施的重要组成部分,也变得越来越重要。为了提升公共厕所的管理水平、提供更好的服务质量,智慧公厕应运而生。智慧公厕的建设旨在通过信息化手段实现公共厕所的全面感知监测,实现公…...

常用芯片学习——BME280芯片
BME280 温湿度气压传感器 芯片介绍 BME280是基于成熟传感原理的组合数字湿度、压力和温度传感器。该传感器块采用极为紧凑的金属盖LGA封装,占地面积仅为2.5x2.5mm2,高度为0.93mm。该传感器提供I2C以及SPI接口。它的小尺寸和低功耗允许在电池驱动的设备…...

QT 状态机的使用
QT 状态机的使用场景: QT 状态机适用于需要管理复杂状态和状态转换的场景,例如游戏开发、UI界面控制、自动化控制系统等。它可以帮助组织和管理程序中的各种状态,并定义状态之间的转换规则,使程序逻辑清晰、易于维护。 QT 状态机…...