STM32F407系统时钟的配置和查看方法

news2024/12/26 9:20:45

1、系统时钟的来源

STM32F407具有两个PLL,用于产生不同的时钟信号。这里主要来讨论主PLL时钟。主PLL时钟的时钟源有两个信号,分别是上边提到的HIS信号和HSE信号。PLL通过把这两个信号倍频,分频等达到更高频率的时钟信号。一般来说,由于HIS和HSE的时钟频率较低,SYSCLK一般都不会选择HIS时钟和HSE时钟作为系统时钟,而主PLL产生的时钟一般会用作系统时钟。下面我们来看下主PLL的内部结构框图。

由图可以看出PLL的时钟源主要有两个:HSE时钟信号和HIS时钟信号。其中PLL_M,PLL_N,PLL_P,PLL_Q是一个分频器,而PLL_M是一个倍频器。假设上图中经过PLL_N之后的时钟信号为PLL_VCO,PLL使用外部时钟信号HSE作为时钟源。那么有如下关系。

PLL_VCO  = (HSE / PLL_M)* PLL_N

SYSCLK  =  PLL_VCO/ PLL_P

2、系统时钟的配置

  1. plln: PLL1 倍频系数(PLL 倍频),取值范围:4~512.
  2. pllm: PLL1 预分频系数(进 PLL 之前的分频),取值范围:2~56.
  3. pllp: PLL1 的 p 分频系数(PLL 之后的分频),分频后作为系统时钟,取值范围:2~128
  4. pllq: PLL1 的 q 分频系数(PLL 之后的分频),取值范围:1~128.

所以,如果外部晶振的频率已经确定了,那么确定PLL_M,PLL_N,PLL_P的系数就可以得到对应频率的系统时钟SYSCLK,其中PLL_M,PLL_N,PLL_P可以有多种组合,只要满足相应的条件即可。例如,假设外部晶振为8M,对STM32F407来说,系统时钟的最大频率为168M,那么久可以分别设置PLL_M = 8,PLL_N = 336,PLL_P = 2。来产生168M的时钟。即SYSCLK = ( 8 /8 ) * 336 / 2 = 168M。

在下列文件中配置PLL参数

 通过配置主PLL,我们就得到了系统的主时钟SYSCLK,下一步我们就可以通过这个时钟来分频得到各个外设的时钟。

3、查看stm32系统时钟

第一步在main函数开头添加如下代码:

RCC_ClocksTypeDef RCC_Clocks;

RCC_GetClocksFreq(&RCC_Clocks);

RCC_ClocksTypeDef结构体原型在stm32f4xx_rcc.h中:

typedef struct

{

uint32_t SYSCLK_Frequency; /*!< SYSCLK clock frequency expressed in Hz */

uint32_t HCLK_Frequency; /*!< HCLK clock frequency expressed in Hz */

uint32_t PCLK1_Frequency; /*!< PCLK1 clock frequency expressed in Hz */

uint32_t PCLK2_Frequency; /*!< PCLK2 clock frequency expressed in Hz */

}RCC_ClocksTypeDef;

然后仿真就可以看到系统各个时钟值了:                     

 注意:这里默认是显示十六进制数的,需要对这些数据点击右键会出现"Hexadcimal Display"打勾,点击一下就可以切换到十进制数了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux6.yum,git,gdb

1.yum三板斧 yum list :显示所有能安装的软件。 yum lisy | grep 软件 :搜索软件。 yum install -y :安装软件。 yum remove -y 软件 :删除已经安装的软件。 2.git git clone 仓库网址 :添加仓库&#xff0c;按回车之后。需要输入账户和密码。 git add 文件 :把文件添加…

图像几何变换、仿射变换、透视变换

图像几何变换:平移、缩放、旋转 图像旋转变换:(x,y)为原图像坐标系,(x’,y’)为以(x0,y0)为中心的笛卡尔坐标系,图像以x0,y0)为中心进行旋转。 图像坐标系->笛卡尔坐标系->图像坐标系。如果是以图像中心旋转,则left=W/2,right=H/2,其中W和H为图像旋转…

MinGW 编译jsoncpp 的下载和编译

目录 1. jsoncpp 的下载 1.1 下载地址&#xff0c;点击可直接下载 1.2 下载完解压内容如下 2. jsoncpp 的编译 2.1 配置 2.2 生成 3. jsoncpp测试使用 1. jsoncpp 的下载 1.1 下载地址&#xff0c;点击可直接下载 mirrors / open-source-parsers / jsoncpp GitCode 1…

数据库监控与调优【十五】—— ORDER BY语句优化

ORDER BY语句优化 最好的做法&#xff1a;利用索引避免排序 实验 目的&#xff1a;哪些情况下ORDER BY子句能用索引避免排序&#xff0c;哪些情况下不能 之前说过&#xff0c;BTree数据结构里面的关键字&#xff0c;也就是索引值都是按照顺序排列的&#xff0c;那么&#xf…

端午节粽子代码(python)需要的拿走,顺带给博主一点关注呗~~~~

import math from turtle import * #胡阳 # 画粽子 def rice_dumpling():pensize(4) # 画笔宽度pencolor(4, 60, 12) # 画笔颜色fillcolor(4, 70, 19) # 填充色begin_fill()fd(200) # 向前circle(15, 120) #画圆弧fd(200)circle(15, 120)fd(200)circle(15, 120)fd(200)circle(1…

自动化测试你一定要知道的几个技巧,包你受用终身

自动化测试是应用程序在非常短的时间内执行软件的整个生命周期的过程&#xff0c;使测试软件具有很大的充分性和有效性。在这个程序设计的系统中&#xff0c;测试人员编写一个脚本&#xff0c;并借助合适的软件对软件进行测试。自动化测试背后的基本目标是提高测试效率和提高软…

C 语言经典100例(菜鸟在线工具)

C 语言经典100例 C 语言经典100例 菜鸟工具 C代码在线运行工具 搜索引擎 前端开发

农产品批发采购APP开发 手机里的农产品市场

农业发展是民生之本&#xff0c;随着互联网时代的到来各行各业都迎来了新的发展机遇&#xff0c;农产品批发采购、配送服务等方面也发生了很大的改变&#xff0c;各种农产品商城APP、农产品批发采购平台、农产品供应管理系统的开发让包含农产品信息、数据、物流、配送、仓储、质…

关于tcp协议的18个常问面试题(进阶版)

TCP是一个基础协议&#xff0c;这里相关的十八个问题也都是常见的问题。无论是前端还是后端同学&#xff0c;都应该掌握的这些问题。过于基础的问题&#xff0c;比如TCP格式是什么 占多少字节 三次握手的流程等等&#xff0c;由于过于简单&#xff0c;我们不介绍&#xff0c;本…

Mabatis(CRUD)

Mybatis CRUD(数据和配置使用Mybatis快速入门) select标签 选择&#xff0c;查询语句: <select id"getUserById" resultType"com.louis.pojo.User" parameterType"int"></select>id:就是对应namespace中的方法名(就相当于重写了…

记录::windows11安装子系统ubuntu18.04+cuda

https://learn.microsoft.com/zh-cn/windows/wsl/install-manual https://zhuanlan.zhihu.com/p/436441212 目录 1、开启开发者模式 2、开启子系统 3、下载ubuntu 4、安装ubuntu 5、安装cuda 6、安装cudnn 7、安装桌面 2、桌面 3、Xfces&#xff08;前面2和这个二选一…

不需要数据线传输如何共享笔记软件内容?

在生活和工作中&#xff0c;手机电脑共享数据的情况非常多&#xff0c;比如“共享笔记内容”。每当遇到这种情况&#xff0c;很多人都会使用数据线或借助第三方社交平台&#xff0c;把信息或文件传输过去。不过&#xff0c;这两种方法一个安全性不能保障&#xff0c;尤其是使用…

如何基于Nilearn绘制绘制脑网络图(一)?绘制功能连接、结构连接可视化

结果图 Nilearn Nilearn是一个Python库,用于神经影像分析。它提供了处理和分析功能性和结构性脑成像数据的工具。Nilearn提供了多种预处理函数、机器学习算法应用、统计分析和结果可视化的功能。在神经影像研究领域,Nilearn常用于分析功能性磁共振成像(fMRI)等技术的数据。…

Kubernetes1.21部署apisix网关

1、安装nfs-subdir-external-provisioner helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner -f values.yaml -n default docker pull k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2 下载…

本地生活服务平台加盟

本地生活服务平台加盟是一种让创业者可以成为品牌合作伙伴&#xff0c;开展本地生活服务业务的方式。通常&#xff0c;加盟商需要缴纳一定的加盟费用&#xff0c;获得品牌授权和支持&#xff0c;并承担一定的经营风险。 加盟本地生活服务平台可以让创业者在品牌知名度和运营…

机器人开发--Cartographer详细介绍

机器人开发--Cartographer详细介绍 1 介绍1.1 概述1.2 评价1.3 特点 2 框架官方 3 代码结构heimazaifei 解读linyicheng 解读Xiaotu 解读cartographer_ros地图构建器map_builderLocal SLAMGlobal SLAM 赵锴 解读地图设计匹配方法一阶段解算二阶段解算后端如何检测回环检测回环后…

数学建模算法(基于matlab和python)之 Lagrange插值、Newton插值(1/10)

实验目的及要求&#xff1a; 1、了解多项式插值公式的存在唯一性条件及其余项表达式的推导。 2、了解拉格朗日插值多项式的构造、计算及其基函数的特点&#xff0c;牛顿插值多项式的构造与应用&#xff0c;差商、差分的计算及基本性质。 实验内容&#xff1a; 1、编写Lagrange插…

服务 第六章

目录 1.基于域名的跳转 2.基于客户端 IP 访问跳转 3. 基于旧域名跳转到新域名后面加目录 4.基于参数匹配的跳转 5.基于目录下所有 php 结尾的文件跳转 6.基于最普通一条 url 请求的跳转 7.总结 1.基于域名的跳转 2.基于客户端 IP 访问跳转 3. 基于旧域名跳转到新域名后面加目…

ESP32设备驱动-74HC595驱动7段数码管

74HC595驱动7段数码管 文章目录 74HC595驱动7段数码管1、74HC595介绍2、硬件准备3、软件准备4、驱动实现所有微控制器都有特定数量的 IO 引脚,但在某些应用中,例如在 7 段显示器中,我们需要的 GPIO 引脚数量超过我们的控制器所能提供的数量。 对于这种需要多个输出引脚但微控…

深入分析动态链接的延迟绑定

关于程序运行的系列文章 ELF文件结构和实战分析 深入分析动态链接的延迟绑定 文章目录 为什么使用动态链接库&#xff1f;静态链接的问题&#xff1a;动态链接库 动态共享库是怎样存在于内存中的&#xff1f;动态链接 原理简析代码示例dynsymGOT.rela.dyn 和 .rela.pltPLT使用…