STM32配置时钟系统流程(固件库/外设标准库)

2023-10-26

前提:STM32F10x系列固件库(标准外设库)


前言:

       固件库帮我们写好了 ‘时钟系统(/时钟树)的配置函数’ ,该函数也不需要我们去调用,只要正确包含了STM32的启动文件(.s文件)就行。.s启动文件调用执行了时钟配置函数,先于main函数执行(.s启动文件执行完才到main函数执行)。

       库的时钟配置函数的默认配置是:HSE为8MHz,系统时钟是72MHz。如果有HSE,就把HSE作为时钟源,没有HSE就把HSI作为时钟源。配置函数中会检测有无HSE。

       大多情况下,默认配置的时钟系统就满足我们的使用了,并不需要更改。如果需要更改的话,后面有教程。

       本文先讲解固件库是怎么配置时钟系统的,再讲一下,怎么去更改固件库的默认的时钟配置。

注意:STM32F103x的固件库的默认配置是:HSE是8MHz,系统时钟是72MHz。

正文:

一、固件库的时钟配置过程分析:

1、在main之前,执行SystemInit(),完成对系统时钟的配置。

2、SystemInit()函数

 

 

 3、SetSysClock()函数

 

 

4、SetSysClockTo72()函数

 

 

5、默认的外部晶振频率

总结以上的时钟配置流程: 

库的系统时钟函数先是使能HSI,并把HSI作为时钟源(复位后,HSI自然就是时钟源了);

然后启动HSE,

     如果HSE起振成功,那就切换,时钟源由HSI切换为HSE;

     如果HSE起振失败,那就啥也不做(上一步已经把HSI设置时钟源了,就算HSE不起振也没事);

二、修改时钟配置

1、需求:我的主板的晶振原来是8MHz的,现在更换为16NHz了,但我还是希望系统时钟保持为原来的72MHz。

(1)、把库中的HSE_VALUE由默认的8M改为16M

(2)、改HSE相关的分频系数

至此,完成时钟配置的修改。 

 

2、需求:我的主板没有外部晶振,我想启动HSI作为时钟源,并把系统时钟配置为72MHz。

答:啥也不用做,固件库中,系统时钟默认就是72MHz。另外,固件库的时钟配置函数中,第一步就把HSI启动了。随后的一系列复位操作后,HSI就是时钟源了。之后的HSE启动如果成功,才会把HSE设置为时钟源,你的主板没有HSE,HSE自然启动不成功,那就还是保持着HSI作为时钟源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32配置时钟系统流程(固件库/外设标准库) 的相关文章

  • Netty源码剖析之HashedWheelTimer时间轮

    版本信息 JDK1 8 Netty all 4 1 38 Final 时间轮的介绍 我们知道钟表分为很多块 每时钟滴答一次就往前走一个块 而时间轮就是使用这个思想 如下图 上图总共分为8块 每过100ms就往前走一块 然后周而复始 此时 我
  • HC32L130单片机入坑记

    解决问题的思路 经验就可提高工作效率 1 调试中遇到的问题及解决思路 1 程序debug过程中 进入hardware default中断中无限循环 解决办法 运用断点定位到程序debug出错的具体位置 程序最终执行的位置即为程序出错的位置
  • alook浏览器哪个好 夸克浏览器_夸克(Quark)浏览器的安装和使用

    前面的文章 我们大概介绍了一下夸克浏览器的 本片将着重将一下夸克浏览器的使用 下载安装 去夸克的官方网站下载安装包 上传到手机进行安装 去各大应用商店去下载安装 比如小米手机的小米应用商店 华为的华为应用商店 或者第三方的豌豆荚等应用商店去
  • flex & bison 基础概述

    1 前言 限于作者能力水平 本文可能存在谬误 因此而给读者带来的损失 作者不做任何承诺 2 本文目标 简单介绍 flex 和 bison 的基础使用方法 简要分析 flex bison 生成代码的工作流程 3 flex bison 3 1

随机推荐

  • 超详细讲解 H5 移动端适配方案

    目录 REM适配方案 1 前言 2 原理 3 适配代码 4 总结 vw适配方案 1 原理 2 适配代码 3 适配方案对比 1px问题 1 简述 2 代码测试 总结 REM适配方案 1 前言 设计师交付给前端开发一张宽度为750px的视觉稿
  • 重新安装ROG Armoury Crate

    文章目录 使用官方卸载工具卸载奥创 安装奥创 更新奥创之后 Aura Sync 坏了 无法调整灯光 打开 Aura Creator 提示服务运行异常 在任务管理器中随便禁用了几个奥创 Asus的服务后 再次打开 Aura Creator 提
  • 【人工智能】SVM 分类器的设计与应用(QDU)

    人工智能 Astar算法求解8数码问题 QDU 人工智能 利用 搜索的博弈树算法编写一字棋游戏 QDU 人工智能 Fisher 线性分类器的设计与实现 QDU 人工智能 感知器算法的设计实现 QDU 人工智能 SVM 分类器的设计与应用 Q
  • Linux中查看socket状态

    Linux中查看socket状态 cat proc net sockstat 这个是ipv4的 sockets used 137 TCP inuse 49 orphan 0 tw 3272 alloc 52 mem 46UDP inuse
  • 响应式布局(媒体查询+%)

    总结 核心思想 每一个最外层盒子给一个max width 盒子中的内容width全部使用 表示 使用 元素全部写在盒子里 当媒体查询满足情况是display block 注意 精确的是需要一样的 媒体查询相当于if 过渡的动画写在默认样式里
  • 读书笔记-看见未来:改变互联网世界的人们

    作者 余晨 推荐序二 未来从来不会自动地发生 世界正在重新 造物 它既是虚拟意义上的 又同时是实物意义上的 宙斯在假眠 而诸神则各逞其能 时代 曾经刊登过的一篇文章认为 今天的个人计算机革命和互联网之所以成为这样 乃是继承了20世纪60年代
  • LLVM汇编语言指导手册之指令手册

    下面是我对llvm汇编中一些不常用的指令的总结 shl 指令 语法
  • wazuh日志审计--定制规则

    日志审计 定制规则 目录布局 规则集文件夹结构如下所示 在接收到agent传来的日志后 manager会根据 var ossec ruleset decoders里面的各种规则对日志进行处理 提取到了指定字段的值之后再根据 var osse
  • 物理这一块真不好搞,

    研究了一段PHYSX 发现真是寸步难行 英文文档也不是很详细 哎 没人带着的话 还是不搞为好 继续封装软引擎吧 没法干了 心里泼凉泼凉的 哎 咋弄呢 看来只能当个兴趣爱好了 或许用下游戏引擎 看看有没有集成好的
  • TensorFlow 深度学习笔记 Stochastic Optimization

    Stochastic Optimization 转载请注明作者 梦里风林 Github工程地址 https github com ahangchen GDLnotes 欢迎star 有问题可以到Issue区讨论 官方教程地址视频 字幕下载
  • adb移植到Android平台使用

    adb移植到Android平台使用 1 工具源码 所需源码 openssl git clone https github com openssl openssl git zlib 1 2 8 git clone https github c
  • JSOUP爬取4K高清壁纸

    jsoup jar包 1 11 2 链接 https pan baidu com s 1pe3 r5 YB pGEsosfRLbsA pwd 41w5 提取码 41w5 效果 代码 import org jsoup Jsoup import
  • Java.nio.file.NoSuchFileException] - 文件未找到异常处理及解决方法

    Java nio file NoSuchFileException 文件未找到异常处理及解决方法 在日常的Java开发中 我们经常会遇到各种异常情况 其中之一就是 Java nio file NoSuchFileException 即文件未
  • 求帮助安装mysql 出现红色感叹号

  • 【python】【django】cursor.fetchall()的结果是元组

    今天做测试 用django db 的connection来执行一个非常简单的查询语句 sql str select col 1 from table 1 where criteria 1 cursor connection cursor c
  • 混乱的代码是技术债吗

    翻译自 Uncle Bob 的 Blog A Mess is not a Technical Debt 主要是鲍勃大叔的观点 混乱的代码实现不是技术债 原文地址见超链接 The term Technical Debt was created
  • 成功解决安装tensorflow,安装进度1/4,爆红一大片且有很多File出现timed out

    之前安装几次 CPU tensorflow总是出现一大片红 自己发现其中一个原因是python版本和tensorflow不对应 tensorflow 2 0 0 得和python3 5 3 7对应 我之前的版本是3 8 5 会出现不兼容情况
  • 银行定期存款产品目标客户的确定——基于逻辑回归

    本篇文章将会介绍用Python分析银行定期存款产品目标客户的确定详细建模细节 业务框架分析以及模型的选择与评估分析参见上一篇文章 银行定期存款产品目标客户的确定 基于逻辑回归 建模前分析 1 导入各种模块并读取数据 2 数据预处理 维规约
  • STM32 keil中__IO得意思

    IO解释 STM32得库函数中 HAL和LL库都有 存在一个 IO得宏定义 define I volatile const lt defines read only permissions define O volatile lt defi
  • STM32配置时钟系统流程(固件库/外设标准库)

    前提 STM32F10x系列固件库 标准外设库 前言 固件库帮我们写好了 时钟系统 时钟树 的配置函数 该函数也不需要我们去调用 只要正确包含了STM32的启动文件 s文件 就行 s启动文件调用执行了时钟配置函数 先于main函数执行 s启