【STM32】F103 时钟树

STM32F103是一款基于ARM Cortex-M3内核的32位微控制器,它具有丰富的外设资源和灵活的时钟配置。本文将从以下几个方面介绍STM32F103的时钟树:

  • 时钟树的概念和作用
  • 时钟树的组成和分类
  • 时钟树的配置方法和步骤
  • 时钟树的应用实例

  • 一、时钟树的概念和作用
  • 二、时钟树的组成和分类
  • 三、时钟树的配置方法和步骤

一、时钟树的概念和作用

时钟树是STM32为了实现低功耗而设计的功能完善构成复杂的时钟系统,它可以根据不同的外设和应用场合,选择合适的时钟源和频率,以提高系统性能和降低功耗

时钟树的主要作用有以下几点:

  • 提供系统时钟(SYSCLK),即CPU内核工作的机器周期,决定了系统运行的速度;
  • 提供AHB总线时钟(HCLK),即高性能总线工作的频率,连接CPU、内存、DMA等高速设备;
  • 提供APB1和APB2总线时钟(PCLK1PCLK2),即低速总线工作的频率,连接各种外设如GPIO、UART、TIM等;
  • 提供RTC时钟(RTCLK),即实时时钟工作的频率,用于提供精确的时间信息;
  • 提供USB时钟(USBCLK),即USB外设工作的频率,用于实现USB通信功能;
  • 提供MCO时钟输出(MCO),即微控制器时钟输出引脚,可以输出不同的时钟信号给外部设备;

二、时钟树的组成和分类

STM32F103的时钟树由四个时钟源、一个总线矩阵、一个PLL(锁相环)倍频器、一个CSS(时钟安全系统)检测器、一个USB预分频器、一个RTC预分频器、一个MCO输出选择器等部分组成。

STM32F103的时钟树可以分为以下六部分:

  • 高速外部时钟(HSE):由外部晶振或者信号源提供,频率范围为4~16MHz,通常使用8MHz的晶振。HSE可以直接作为系统时钟或者经过PLL倍频后作为系统时钟,也可以经过预分频后提供给RTC或者MCO;
  • 高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz,精度和稳定性较低。HSI可以直接作为系统时钟或者经过PLL倍频后作为系统时钟,也可以提供给MCO;
  • 低速外部时钟(LSE):由外部晶振或者信号源提供,主要提供给RTC模块,所以一般使用32.768KHz的晶振。LSE可以直接作为RTC时钟或者经过预分频后提供给RTC或者MCO;
  • 低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给RTC模块,频率大约为40KHz。LSI可以直接作为RTC时钟或者提供给MCO;
  • 总线矩阵:由多层AHB总线矩阵构成,用于连接Cortex-M内核、DMA控制器、外设和存储器。总线矩阵包括以下几条总线:
    • ICode总线:用于访问存储空间里指令的总线;
    • DCode总线:用于访问存储空间里数据的总线;
    • System总线:用于访问指令、数据以及调试模块接口;
    • DMA总线:用于内存与外设之间的数据传输;
    • AHB总线:高性能总线,连接CPU、内存、DMA等高速设备,最高频率可达72MHz;
    • APB1总线:低速外设总线,连接DAC、UART等外设,最高频率可达36MHz;
    • APB2总线:高速外设总线,连接ADC、GPIO等外设,最高频率可达72MHz;
  • PLL(锁相环)倍频器:用于将输入的时钟信号进行倍频,以提高系统时钟的频率。PLL的输入时钟源可以是HSI/2或者HSE,倍频系数可以是2~16之间的整数。PLL的输出时钟可以作为系统时钟或者提供给USB预分频器或者MCO;

图中名词释义:

  • PLLXTPRE是一个分频器,它可以选择HSE时钟的一分频或二分频作为PLL的输入时钟源;
  • PLLSRC是一个选择器,它可以选择HSI时钟的二分频或HSE时钟(经过PLLXTPRE分频)作为PLL的输入时钟源;
  • PLLMUL是一个倍频器,它可以将PLL的输入时钟源进行2~16倍的倍频,得到PLL的输出时钟源;
  • prescalear:预分频。

在这里插入图片描述

三、时钟树的配置方法和步骤

STM32F103的时钟树的配置主要涉及到以下几个寄存器:

  • RCC_CR(时钟控制寄存器):用于控制HSE、HSI、PLL、CSS等时钟源的开启、关闭和就绪状态;
  • RCC_CFGR(时钟配置寄存器):用于控制系统时钟源的选择、AHB、APB1、APB2、USB等总线的预分频系数、PLL的输入时钟源和倍频系数等;
  • RCC_CIR(时钟中断寄存器):用于控制和清除各种时钟源就绪中断和CSS中断;
  • RCC_APB2RSTR(APB2外设复位寄存器):用于控制APB2外设的复位状态;
  • RCC_APB1RSTR(APB1外设复位寄存器):用于控制APB1外设的复位状态;
  • RCC_AHBENR(AHB外设使能寄存器):用于控制AHB外设的时钟使能状态;
  • RCC_APB2ENR(APB2外设使能寄存器):用于控制APB2外设的时钟使能状态;
  • RCC_APB1ENR(APB1外设使能寄存器):用于控制APB1外设的时钟使能状态;
  • RCC_BDCR(备份域控制寄存器):用于控制LSE、RTC等备份域相关的功能;
  • RCC_CSR(控制/状态寄存器):用于控制LSI、CSS等功能以及显示复位标志;

STM32F103的时钟树的配置一般遵循以下步骤:

  1. 根据需要选择合适的时钟源,例如HSE或者HSI,并通过设置RCC_CR寄存器相应的位来开启或关闭该时钟源;
  2. 根据需要选择是否使用PLL,并通过设置RCC_CFGR寄存器相应的位来选择PLL的输入时钟源和倍频系数,以及开启或关闭PLL;
  3. 根据需要选择系统时钟源,并通过设置RCC_CFGR寄存器相应的位来选择系统时钟源为HSE、HSI或者PLLCLK;
  4. 根据需要设置AHB、APB1、APB2等总线的预分频系数,并通过设置RCC_CFGR寄存器相应的位来设置预分频

TM32的各种外设应该如何选择时钟频率的原则如下:

  • 外设的时钟频率应该小于或等于系统时钟频率(SYSCLK),否则会导致外设无法正常工作;
  • 外设的时钟频率应该满足外设的功能需求,例如定时器的精度、串口的波特率、ADC的采样速率等;
  • 外设的时钟频率应该考虑功耗和电磁干扰的影响,一般来说,时钟频率越高,功耗越大,电磁干扰越严重。


~

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

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

相关文章

elementui实现表格自定义排序

需求说明&#xff1a; 1、第一行不参与排序 2、实现带%排序 3、实现null值排序 4、实现值相等不排序 5、实现含有占位符‘–‘排序放到最后 效果图如下&#xff1a; <template> <div><template><el-table border :data"previewTableData" style…

vue三种方式导出报表至excel

1、序言 1.1、源码 源码在下方&#xff0c;复制运行&#xff0c;安装相应的插件即可 1.2、坑 方式一、方式二安装相同插件&#xff1a; npm install xlsx xlsx-style file-saver 导入 xlsx-style 会报如下的错误 解决办法&#xff1a; &#xff08;1&#xff09;去node_modules…

个人对于SAR的粗浅理解

个人对于SAR的粗浅理解 有同学问我是做成像的&#xff0c;让我解释一下SAR成像&#xff0c;我思索了一下&#xff0c;决定这样简单回答&#xff1a; 首先SAR的全称为Synthetic Aperture Radar&#xff0c;即合成孔径雷达&#xff0c;本质还是一种Radar 合成孔径&#xff0c;其…

二叉树刷题总结

题单&#xff1a; 一&#xff0c;相同的树 题目&#xff1a; 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 题目接口&#xff1a; /*** Defin…

STM32实战项目—密码锁

该项目的完整工程可以在博主的资源里找到&#xff0c;仅供参考。 文章目录 一、任务要求二、实现方法2.1 输入密码判断2.2 管理员模式2.3 修改密码 三、程序设计3.1 输入密码判断3.2 进入管理员模式3.3 修改密码 四、问题总结4.1 输入内容一直提示Error4.2 密码判断一直错误 五…

ADB原理,常用命令汇总及示例

一. ADB简介 ADB&#xff0c;即 Android Debug Bridge 是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具&#xff0c;它可为各种设备操作提供便利&#xff0c;如安装和调试应用&#xff0c;并提供对 Unix shell&#xff08;可用来在模拟器或连接的设备上运行各种…

对话小红书剑寒:如何跨方向技术融合,全局优化打造更智能的音视频系统?...

编者按&#xff1a;在 AI 时代&#xff0c;随着 ChatGPT 掀起技术狂潮&#xff0c;构建更智能的音视频系统已经成为音视频领域从业者的共同目标。 然而&#xff0c;音视频系统的智能化&#xff0c;每个从业者对其都有自己独特的视角和理解&#xff0c;正如“一千个人眼中有一千…

基于FreeRTOS的嵌入式设备管理关键技术研究及实现(学习四)

硬件平台 终端设备的硬件选型主要由STM32芯片作为处理器&#xff0c;板载时钟电路和电源电路以及对外通信串口&#xff0c;并挂载AM2302温湿度传感器来实时收集环境相关信息&#xff0c;将收集到的信息通过NB-IoT通信模组上传到云端&#xff0c;从而实现整个环境监测功能。 主…

基于jsp+Servlet+mysql学生信息管理系统V2.0

基于jspServletmysql学生信息管理系统V2.0 一、系统介绍二、功能展示1.项目骨架2.数据库表3.项目内容4.登陆界面5.学生-学生信息6、学生-修改密码7、管理员-学生管理8、管理员-添加学生9.管理员-修改学生信息10.管理员-班级信息11.管理员-教师信息 四、其它1.其他系统实现五.获…

【Linux】LVS负载均衡群集 NAT模式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 LVS负载均衡群集 NAT模式 一、理解负载均衡群集的原理1.企业群集应用概述2.企业群集分类3.负载均衡群集架构4.负载均衡群集工作模式分析5.NAT模式6.TUN模式7.DR模式 二、LVS虚…

CMU 15-445 -- Tree Indexes - 05

CMU 15-445 -- Tree Indexes - 05 引言Table IndexB TreeB-Tree FamilyB TreeB Tree NodesB Tree OperationsIn Practice Clustered IndexesCompound IndexB Tree Design ChoicesNode SizeMerge ThresholdVariable Length KeysNon-unique IndexesIntra-node Search Optimizatio…

SpringBoot(原理篇)

SpringBoot原理篇 自动配置 bean加载方式 xml方式声明bean 相关类&#xff1a; domain域中的实体类&#xff1a; public class Mouse { }public class Cat { }public class Dog { }测试&#xff1a; public class App1 {public static void main(String[] args) {ClassP…