STM32F4时钟配置库函数详解
在STM32中,所有的应用都是基于时钟,所以时钟的配置就尤为重要了,而不能仅仅只知道使用默认时钟。

STM32F4的时钟树如上图所示,HSE为外部接入的一个8M的时钟,然后再给PLL提供输入时钟,经过分频倍频后产生PLLCLK时钟,为SYSCLK提供基础时钟来源。
配置的步骤:
- 将RCC寄存器重新设置为默认值
- 打开外部高速时钟晶振HSE
- 等待HSE时钟晶振工作
- 设置AHB时钟也就是HCLK时钟
- 设置高速APB1时钟也就是PCLK1
- 设置低速APB2时钟也就是PCLK2
- 设置PLL
- 打开PLL
- 等待PLL工作
- 设置系统时钟
- 判断系统时钟是否为PLL时钟
重点设置为PLL的配置:
void RCC_PLLConfig( uint32_t RCC_PLLSource,
uint32_t PLLM,
uint32_t PLLN,
uint32_t PLLP,
uint32_t PLLQ)
RCC_PLLSource为选择的输入时钟源,在这里为HSE
PLLM:VCO输入时钟分频因子,取值2-63 经分频后输入时钟范围要在1-2M内
PLLN:VCO输出时钟倍频因子,取值192-432经倍频后输出时钟范围要在192-432
PLLP:SYSCLK时钟分频因子,取值2、4、6、8
PLLQ:OTG、FS、SDIO、RNG时钟分频因子,取值4-15,分频后最高48M
PLL_VCO输出时钟 = (RCC_PLLSource/PLLM)*PLLN
SYSCLK = ((RCC_PLLSource/PLLM)*PLLN)/PLLP
OTG、FS、SDIO、RNG Clock = ((RCC_PLLSource/PLLM)*PLLN)/PLLN
所以要将系统时钟配置成120M则应设置参数(RCC_PLLSource_HSE,8,240,2,2);
在这里RCC_PLLConfig (RCC_PLLSource_HSE,8,240,2,2);
SYSClock = 8/8*240/2 = 120M
void RCC_ClockConfig(void)
{
RCC_DeInit();
RCC_HSEConfig( RCC_HSE_ON ); if(SUCCESS == RCC_WaitForHSEStartUp())
{
RCC_HCLKConfig (RCC_SYSCLK_Div1);
RCC_PCLK1Config (RCC_HCLK_Div1);
RCC_PCLK2Config (RCC_HCLK_Div1);
RCC_PLLConfig (RCC_PLLSource_HSE,,,,);
//SYSClock = 8/8*240/2 = 120M RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus ( RCC_FLAG_PLLRDY) == RESET )
{ } RCC_SYSCLKConfig ( RCC_SYSCLKSource_PLLCLK ); while(RCC_GetSYSCLKSource() != 0x08)
{ } } }
时钟信号可由PA8和PC9引脚输出查看。
STM32F4时钟配置库函数详解的更多相关文章
- STM32时钟配置方法详解
一.在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频率为8MHz. ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源, ...
- Spartan6系列之芯片配置模式详解
1. 配置概述 Spartan6系列FPGA通过把应用程序数据导入芯片内部存储器完成芯片的配置.Spart-6 FPGA可以自己从外部非易失性存储器导入编程数据,或者通过外界的微处理器.DSP等对 ...
- ASP.NET Core的配置(2):配置模型详解
在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvi ...
- mha配置参数详解
mha配置参数详解: 参数名字 是否必须 参数作用域 默认值 示例 hostname Yes Local Only - hostname=mysql_server1, hostname=192.168 ...
- Cocos2d-x win7 + vs2010 配置图文详解
Cocos2d-x win7 + vs2010 配置图文详解 下载最新版的cocos2d-x.打开浏览器,输入cocos2d-x.org,然后选择Download,本教程写作时最新版本为cocos2d ...
- CentOS7下Firewall防火墙配置用法详解
官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...
- Python安装、配置图文详解(转载)
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(I ...
- Oracle 11g客户端在Linux系统上的配置步骤详解
Oracle 11g客户端在Linux系统上的配置步骤详解 2011-07-26 10:47 newhappy2008 CSDN博客 字号:T | T 本文我们主要介绍了Oracle 11g客户端在L ...
- 【和我一起学python吧】Python安装、配置图文详解
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...
随机推荐
- SQL Server多条件查询的实现
SQL Server多条件查询的实现 SQL Server多条件查询我们经常会用到,下面就教您如何使用存储过程实现SQL Server多条件查询,希望对您学习SQL Server多条件查询方面有所帮助 ...
- python的多线程和守护线程
1.创建一个多线程 import threading import time ''' def threading_func(num): print("running on number:%s ...
- 实验1:c++简单程序设计(1)
//文中有格式错误请无视 //这个编辑器一言难尽 实验目的 1. 掌握c++中类c部分的编程知识: 数据类型,常量,变量,运算符,表达式,分支结构,循环结构 2. 掌握C++中数据输入和输出的基本方法 ...
- 9-最短路径(dijkstra)
参考博客:http://www.wutianqi.com/?p=1890 #include <iostream>using namespace std;#define max 1< ...
- MVC4升级到MVC5未能加载文件或程序集System.Web.WebPages.Razor, Version=3.0.0.0
首先,我并没有升级他,头一天还是好好的,用的都是2.0.0.0版本的,今天来打开就出现了这个错误: 未能加载文件或程序集“System.Web.WebPages.Razor, Version=3.0. ...
- 彻底关闭win10的自动更新,一定要坚持看到最后一页
https://jingyan.baidu.com/article/9faa7231e7b78b473c28cbb6.html 是否好使我还在测试,不好使的话,再跟新 2018-05-20 今天电脑又 ...
- 项目解析1、登录验证用户是否存在 储备知识 Python 之 decorator装饰器
下面是我对 装饰器 这一小节的总结, 以及自己的理解. 注:[本文中的代码参考上述教程] 很多时候我会把Python的很多语法与C++相融合,在C++中,函数的名称即为函数的地址,我们可以通过定义成为 ...
- Determine overlapping rectangles
https://github.com/Premiumlab/Python-for-Algorithms--Data-Structures--and-Interviews/blob/master/Moc ...
- 流程控制 if while for 已及数字类型 进制转换
一:if 语句 语法一:ifif 条件: code1 code1 code1 语法二:if ...else ... if 条件: code1 code1 code1else: code1 code1 ...
- 2018.07.06 POJ 1459 Power Network(多源多汇最大流)
Power Network Time Limit: 2000MS Memory Limit: 32768K Description A power network consists of nodes ...