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集成开发环境( ...
随机推荐
- Plants vs. Zombies(二分好题+思维)
Plants vs. Zombies http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5819 BaoBao and DreamG ...
- ecplice中去掉提示信息的步骤
Window-->preferences-->Java-->Editor-->Hovers-->将Combined Hover前面的对勾去掉-->ok.
- Adplus 抓取Crash Dump
本实例在win8.1 安装window kits https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit 1 ...
- 小X归来 模拟赛1 解析
Problem1 单峰 小X 归来后,首先对数列很感兴趣.他想起有1类特殊的数列叫单峰数列. 我们说一个数列 {ai} 是单峰的,当且仅当存在一个位置 k 使得 ai < ai+1(i < ...
- hook进程
https://www.cnblogs.com/Leo_wl/p/3311279.html https://blog.csdn.net/u013761036/article/details/65465 ...
- nfs文件系统在linux下挂载不上的解决办法
标签: mount nfs export 2014年08月07日 18:46:247472人阅读 评论(0) 收藏 举报 分类: 文件系统(10) 版权声明:本文为博主原创文章,未经博主允许 ...
- Vue.js 2.0 跨域请求数据
Vuejs由1.0更新到了2.0版本.HTTP请求官方也从推荐使用Vue-Resoure变为了 axios .接下来我们来简单地用axios进行一下异步请求.(阅读本文作者默认读者具有使用npm命令的 ...
- Linux多线程服务端编程 使用muduo C++网络库 学习笔记 日志log
代码来自陈硕开源代码库 muduo中 地址是https://github.com/chenshuo/muduo #pragma once #include <string> #define ...
- document.body和document.documentElement区别
1.document.documentElement表示文档节点树的根节点,即<html> document.body是body节点 2. 页面具有 DTD,或者说指定了 DOCTYPE ...
- HDFS系列 -- HDFS预研
1 HDFS概述 由于传统集中式的物理服务器在存储容量和数据传输速度等方面都有限制,故而越来越不符合这些数据的实际存储需要. 在大数据时代,大数据处理需要解决的首要问题是:如何高效地存储所产生的规模庞 ...