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

stm32(hal库)学习笔记-时钟系统

在stm32中,时钟系统是非常重要的一环,他控制着整个系统的频率。因此,我们有理由好好学一下时钟系统。

什么是时钟?

时钟是具有周期性的脉冲信号,一般我们常用占空比为50%的方波。可以形象的说,时钟就是单片机的脉搏。

在我常用的stm32F1系列中,分别有HSE(高速外部),LSE(低速外部),HSI(高速内部),LSI(低速内部)。高速的两个一般用于滴答时钟,低速的两个一般用于RTC。其中还有两个比较少见的,分别是CSS(时钟安全系统)和FCLK(自由运行时钟)。CSS作用为若HSE启动失败,自动切换HSI,且其可以进NMI中断。FCLK用于采样中断和调试模块记时。休眠时仍然有效。

接着我们来看一下stm32f103的时钟树简图。如图所示,如果HSE和HSI直接给SYSCLK频率,很明显是够不着st公司为SYSCLK设定的官方最大频率的。那他是怎么做到的呢?那就是分频+PLL(锁相环)。分频就是使频率变为输入的频率的整数分之一,具体由代码实现。PLL原理在此不细说,总而言之就是他可以使分频后的频率乘以一个2~16的数,使得输出的频率变大。若如图的,72MHZ就有可能是8*9=72MHZ。

在进入SYSCLK(系统时钟)以后,会继续分频输出一个频率给HCLK(AHB总线时钟),在AHB总线上挂载了内核系统时间和外设,同时继续分频给PCLK1和PCLK2,其分别是APB1总线和APB2总线的时钟,接着在配置链接在这两个总线上的众多外设。

 系统时针配置步骤

1.配置HSE_VALUE

配置HSE_VALUE主要是高速HAL库外部的晶振频率。使用的头文件是stm32xxxx_hal_conf.h

2.调用SystemInit()函数

在启动文件中调用,在system_stm32xxxx.c中进行定义。如果不需要,可以直接注释掉。

3.选择时钟源,配置PLL

通过HAL_RCC_OscConfig()函数进行设置,其主要选择时HSI还是HSE时钟。其中Osc的意思是振荡器。便是晶振。

HAL_RCC_OscConfig()的形参为一个结构体,名字为RCC_OscInitTypeDef。该结构体决定的就是各个振荡器的参数。并且对于PLL结构体还有一个结构体,这个结构体便是决定PLL的的信号来源,倍数和开启与否。

 

4.选择系统时钟源,配置总线分频器

通过HAL_RCC_ClockConfig()函数进行设置,他有两个形参,分别是RCC_ClkInitTypeDef*类型的数据和FLatency参数。第一个是用来初始化时钟的,他决定了分频的时候的系数。第二个是用来决定FLASH等待多少周期的,当系统时针周期在0<SYSCLK<<24MHZ的话,选择下图的0个等待周期,24MHZ<SYSCLK<<48MHZ选择一个等待周期,48MHZ<SYSCLK<<72MHZ选择一个等待周期。一般对于stm32f1系列是选择2个等待周期。

 

ATTENTION!

不知道前面有没有同学注意到,其实我讲漏了一个非常重要的部分,那就是时钟的使能与失能   __HAL_RCC_GPIOA_CLK_ENABLE();     使能GPIO时钟

__HAL_RCC_GPIOA_CLK_DISABLE();     失能GPIO时钟

相关文章:

stm32(hal库)学习笔记-时钟系统

在stm32中&#xff0c;时钟系统是非常重要的一环&#xff0c;他控制着整个系统的频率。因此&#xff0c;我们有理由好好学一下时钟系统。 什么是时钟&#xff1f; 时钟是具有周期性的脉冲信号&#xff0c;一般我们常用占空比为50%的方波。可以形象的说&#xff0c;时钟就是单…...

【Java项目】基于SpringBoot的财务管理系统

【Java项目】基于SpringBoot的财务管理系统 技术简介&#xff1a;采用Java技术、SpringBoot框架、MySQL数据库等实现。系统基于B/S架构&#xff0c;前端通过浏览器与后端数据库进行信息交互&#xff0c;后端使用SpringBoot框架和MySQL数据库进行数据处理和存储&#xff0c;实现…...

Qt中如果槽函数运行时间久,避免阻塞主线程的做法

Qt中如果槽函数运行时间久&#xff0c;避免阻塞主线程的做法 一、解决步骤 创建一个工作线程类&#xff1a;继承自QObject&#xff0c;并在其中实现槽函数的逻辑。将工作线程类的实例移动到单独的线程中&#xff1a;通过moveToThread()方法将对象移动到新线程。启动线程&…...

曹操智行构建国内首个全域自研闭环智驾生态

2月28日&#xff0c;曹操出行举办曹操智行自动驾驶平台上线仪式&#xff0c;宣布已成功构建国内首个“F立方”全域自研闭环智驾生态&#xff0c;同时在苏杭两地开启Robotaxi运营试点&#xff0c;并投放搭载吉利最新智驾系统的车辆。 此次试点运营&#xff0c;标志着曹操出行在…...

day02_Java基础

文章目录 day02_Java基础一、今日课程内容二、数组&#xff08;熟悉&#xff09;1、定义格式2、基本使用3、了解数组的内存图介绍4、数组的两个小问题5、数组的常见操作 三、方法&#xff08;熟悉&#xff09;1、定义格式2、方法重载overload 四、面向对象&#xff08;掌握&…...

SpringSecurity 实现token 认证

配置类 Configuration EnableWebSecurity EnableGlobalMethodSecurity(prePostEnabledtrue) public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { Bean Override public AuthenticationManager authenticationManagerBean() throws Exception {return s…...

轻松实现语音生成:GPT-SoVITS V2整合包的远程访问操作详解

文章目录 前言1.GPT-SoVITS V2下载2.本地运行GPT-SoVITS V23.简单使用演示4.安装内网穿透工具4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 今天要给大家安利一个绝对能让你大呼过瘾的声音黑科技——GPT-SoVITS&#xff01;这款由花儿不哭大佬精心打造的语音克隆神…...

解锁状态模式:Java 编程中的行为魔法

系列文章目录 后续补充~~~ 文章目录 一、状态模式&#xff1a;概念与原理二、状态模式的深度剖析&#xff08;一&#xff09;模式定义与核心思想&#xff08;二&#xff09;模式结构与角色 三、状态模式的实际应用场景&#xff08;一&#xff09;电商系统中的订单状态管理&…...

算法与数据结构(相交链表)

题目 思路 1.哈希集合 因为要求是否存在相交节点&#xff0c;那么我们就可以利用哈希集合先将listA链表里面的所有数据存入&#xff0c;然后访问listB&#xff0c;判断其是否有节点在哈希集合中&#xff0c;若存在&#xff0c;则说明此节点为相交的节点。若遍历完之后仍没有发…...

浅入浅出Selenium DevTools

前言 在自动化测试领域&#xff0c;Selenium一直是主流工具之一。随着前端技术的不断发展&#xff0c;浏览器的功能也在不断丰富。 Selenium 3版本前&#xff0c;一套通用的采集流程如上图所示&#xff1a; 打开Charles&#xff0c;设置Session自动导出频次及导出路径Seleniu…...

软件工程---净室软件工程

净室软件工程是一种软件开发方法&#xff0c;旨在通过形式化的数据和严格的测试来提高软件的可靠性和减少缺陷的数量。它的核心思想是在软件开发过程中最小化或消除软件缺陷&#xff0c;从而提高软件的质量和可靠性。这种方法强调在软件生命周期的早期阶段使用形式化方法进行规…...

OpenHarmony图形子系统

OpenHarmony图形子系统 图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块&#xff0c;构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备的OpenHarmony系统应用开发。 1.1 轻量系统 简介 图形子…...

如何获取Mac OS 安装盘

发现虚拟机VirtualBox支持Mac虚拟&#xff0c;就想尝试一下。但是发现Mac的安装盘特别难拿到&#xff0c;因此留档。发现有几种方法&#xff0c;最简单的方法&#xff0c;是在有Mac 机器的情况下&#xff0c;直接到App Store里&#xff0c;根据Mac版本的名字查找并下载。另外还…...

【弹性计算】弹性裸金属服务器和神龙虚拟化(一):功能特点

弹性裸金属服务器和神龙虚拟化&#xff08;一&#xff09;&#xff1a;功能特点 特征一&#xff1a;分钟级交付特征二&#xff1a;兼容 VPC、SLB、RDS 等云平台全业务特征三&#xff1a;兼容虚拟机镜像特征四&#xff1a;云盘启动和数据云盘动态热插拔特征五&#xff1a;虚拟机…...

大白话前端性能优化方法的分类与具体实现

大白话前端性能优化方法的分类与具体实现 一、资源加载优化 1. 压缩与合并文件 大白话解释&#xff1a; 咱们的网页代码里&#xff0c;就像一个房间堆满了东西&#xff0c;有很多没用的“杂物”&#xff0c;比如代码里的空格、注释啥的。压缩文件就是把这些“杂物”清理掉&a…...

Rabbit MQ 高频面试题【刷题系列】

文章目录 一、公司生产环境用的什么消息中间件&#xff1f;二、Kafka、ActiveMQ、RabbitMQ、RocketMQ有什么优缺点&#xff1f;三、解耦、异步、削峰是什么&#xff1f;四、消息队列有什么缺点&#xff1f;五、RabbitMQ一般用在什么场景&#xff1f;六、简单说RabbitMQ有哪些角…...

ES6 特性全面解析与应用实践

1、let let 关键字用来声明变量&#xff0c;使用let 声明的变量有几个特点&#xff1a; 1) 不允许重复声明 2) 块儿级作用域 3) 不存在变量提升 4) 不影响作用域链 5) 暂时性死区 6&#xff09;不与顶级对象挂钩 在代码块内&#xff0c;使用let命令声明变量之前&#x…...

有关数据库表的冗余字段

有关数据库表的冗余字段 之前看一个开发人员的技术研讨视频&#xff0c;提到了一个数据库表设计中的表拆分字段冗余问题&#xff0c;就是一张表做纵向分表&#xff0c;拆分为a和b以做冷热数据分离存储&#xff0c;但是会有一种情况就是相同的字段值在a&#xff0c;b表中重复出现…...

知识图谱补全KGC

目录 基础知识知识图谱补全概念性能指标 一、翻译模型的知识图谱补全1.TransE2.TransH3.RotatE 二、张量分解的知识补全1.RESCAL2.ComplEx 三、神经网络的知识图谱补全1.卷积神经网络CNN&#xff08;一般用于二维图像处理&#xff09;ConvE 2.循环神经网络RNN3.图神经网络GNN1&…...

独立开发者的内容营销教程

内容营销对于独立开发者来说&#xff0c;是一种低成本、高效的方式来推广产品、建立品牌影响力和吸引潜在用户。通过分享有价值、相关性强的内容&#xff0c;您可以吸引用户的注意力&#xff0c;增强用户黏性&#xff0c;并最终将他们转化为忠实用户或客户。以下是详细的独立开…...

Midjourney V6调色板设置失效的5大隐性原因:从--sref误用到色域压缩陷阱,一文终结色彩失真

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Midjourney V6调色板设置失效的全局认知 Midjourney V6 引入了更严格的色彩语义解析机制&#xff0c;导致此前在 V5.x 中广泛使用的 --palette 参数&#xff08;如 --palette vibrant 或 --palette muted&…...

2026出纳岗位新人如何快速提升能力:从基础上手到能力跃升的最快路径

2026年&#xff0c;出纳岗位已经不再只是“收付款、跑银行、登记现金日记账”这么简单。随着企业财务数字化、业财一体化和AI工具普及&#xff0c;新人想快速成长&#xff0c;必须同时具备规范意识、系统操作能力、数据思维和风险意识。这也是为什么越来越多财务新人会关注像CD…...

AI开始替人跑任务后,真正决定体验的不是模型,而是向量引擎

AI开始替人跑任务后&#xff0c;真正决定体验的不是模型&#xff0c;而是向量引擎为什么这篇文章值得你现在看 过去一年&#xff0c;很多人聊AI&#xff0c;张口就是哪个模型更强。 有人追Gemini 3.5 Flash。 有人追Qwen新模型。 有人追OpenAI的Responses API和Agent工具链。 也…...

Chrome画中画扩展终极指南:一键实现多任务视频播放

Chrome画中画扩展终极指南&#xff1a;一键实现多任务视频播放 【免费下载链接】picture-in-picture-chrome-extension 项目地址: https://gitcode.com/gh_mirrors/pi/picture-in-picture-chrome-extension Chrome画中画扩展是一款基于原生Picture-in-Picture API开发的…...

告别手动计算!用Biopython+DSSP批量分析蛋白质溶剂可及性(附完整脚本)

告别手动计算&#xff01;用BiopythonDSSP批量分析蛋白质溶剂可及性&#xff08;附完整脚本&#xff09; 蛋白质溶剂可及性&#xff08;RSA&#xff09;是结构生物学中的关键参数&#xff0c;它量化了氨基酸残基在蛋白质表面暴露于溶剂的程度。传统手动计算方式在面对大规模PD…...

AI 调研平台,以智能技术重构全域调研数字化体系

在各行各业的业务研判、市场分析、工作调研场景中&#xff0c;传统调研模式长期依赖人工采集、手动整理、经验分析&#xff0c;存在明显的技术与效率短板。人工调研数据来源零散、数据清洗繁琐、分析维度单一&#xff0c;不仅耗费大量人力时间&#xff0c;还容易出现数据遗漏、…...

3步搞定TikTok音乐提取:DouK-Downloader终极免费工具使用指南

3步搞定TikTok音乐提取&#xff1a;DouK-Downloader终极免费工具使用指南 【免费下载链接】TikTokDownloader TikTok 发布/喜欢/合辑/直播/视频/图集/音乐&#xff1b;抖音发布/喜欢/收藏/收藏夹/视频/图集/实况/直播/音乐/合集/评论/账号/搜索/热榜数据采集工具/下载工具 项…...

python入门教程(非常详细),python和c++哪个更值得学

python入门教程(非常详细),python和c哪个更值得学 这篇文章主要介绍了python入门教程(非常详细)&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 python 怎么读 python&…...

有哪些AI论文软件是真的适配学科专业,而不是模板套话?

在 AI 写作技术迅猛发展的今天&#xff0c;各类论文工具层出不穷&#xff0c;看似能快速完成写作任务&#xff0c;实则多数是内容空洞、逻辑混乱、格式随意的“模板复制器”&#xff0c;生成的文章缺乏专业深度&#xff0c;充斥着机械化的表达方式。真正具备学术价值的 AI 论文…...

SSDD数据集技术深度解析:从数据构建到模型优化的SAR舰船检测实战指南

SSDD数据集技术深度解析&#xff1a;从数据构建到模型优化的SAR舰船检测实战指南 【免费下载链接】Official-SSDD SAR Ship Detection Dataset (SSDD): Official Release and Comprehensive Data Analysis 项目地址: https://gitcode.com/gh_mirrors/of/Official-SSDD S…...