STM32之RCC配置
采用8MHz 外部HSE 时钟,程序的时钟设置参数流程如下:
1.将 RCC 寄存器重新设置为默认值:RCC_DeInit();
2.打开外部高速时钟晶振 HSE :RCC_HSEConfig(RCC_HSE_ON);
3.等待外部高速时钟晶振工作: HSEStartUpStatus = RCC_WaitForHSEStartUp();
4.设置 AHB 时钟 (HCLK) :RCC_HCLKConfig(RCC_SYSCLK_Div1);
5.设置APB 2时钟 (APB2) :RCC_PCLK2Config(RCC_HCLK_Div1);
6.设置APB1 时钟 (APB1) :RCC_PCLK1Config(RCC_HCLK_Div2);
7.设置 PLL :RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
8.打开 PLL :RCC_PLLCmd(ENABLE);
9.等待 PLL 工作:while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
10.设置系统时钟:RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
11.判断 PLL 是否是系统时钟:while(RCC_GetSYSCLKSource() != 0x08);
void RCC_config()
{
ErrorStatus HSEStartUpStatus; // 定义错误状态变量
RCC_DeInit();//将RCC寄存器重新设置为默认值
RCC_HSEConfig(RCC_HSE_ON); //打开外部高速时钟晶振
HSEStartUpStatus = RCC_WaitForHSEStartUp();// 等待外部高速时钟晶振工作
if(HSEStartUpStatus == SUCCESS)
{
RCC_HCLKConfig(RCC_SYSCLK_Div1);//设置AHB不分频,HCLK=SYSCLK
RCC_PCLK2Config(RCC_HCLK_Div1);//设置APB2不分频,P2CLK=HCLK
RCC_PCLK1Config(RCC_HCLK_Div2); //设置APB1 为2分频,P1CLK=HCLK/2
FLASH_SetLatency(FLASH_Latency_2);//设置FLASH代码延时
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//使能预取指缓存
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);//设置PLL时钟源,为HSE的9倍频8MHz * 9 = 72MHz
RCC_PLLCmd(ENABLE);//使能PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);//等待PLL准备就绪
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置PLL为系统时钟源
while(RCC_GetSYSCLKSource() != 0x08);//判断PLL是否是系统时钟
}
}
STM32之RCC配置相关推荐
- [ZZ]STM32之RCC
原地址:http://blog.csdn.net/marike1314/archive/2010/06/16/5673522.aspx STM32 RCC复位与时钟配置,我首先忽略掉复位,首先学习时钟 ...
- STM32 HAL RTC配置及优化
STM32 HAL RTC配置及优化 STM32内部的RTC实时时钟模块,可以配置实现日历和时间的运转,并在外部备用电池的辅助下,可以在主电源关闭的情况下保持运行,且RTC备份寄存器也可以在电池供电状 ...
- 第一章 stm32 cubemx基础配置实验以及proteus 8的使用
第一章 stm32 cubemx基础配置实验以及proteus 8的使用 文章目录 第一章 stm32 cubemx基础配置实验以及proteus 8的使用 前言 一.STM32 Cubemx基础配置 ...
- STM32F103ZET6的时钟系统RCC配置
家人们,今天分析了一下手头ZET6开发板的时钟配置过程,记录一下下: 根据正点原子的<库函数开发指南>,时钟系统可以用时钟树来表示: 一共有HSE(高速外部时钟4-16M,正点原子开发板是 ...
- STM32 BOOT 引脚配置
STM32 BOOT 引脚配置 在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式: BOOT1=x BOOT0=0 从用户闪存启动,芯片内置的Flash,这是正常的工作模 ...
- STM32 BOOT模式配置以及作用
一.三种BOOT模式介绍 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存.用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启 ...
- STM32 GPIO的配置寄存器(CRL、CRH)输入输出模式配置
STM32 GPIO的配置寄存器(CRL.CRH)输入输出模式配置 1.学会使用寄存器设定所需IO的方向,学会配置CRL.CRH 2.理解如下代码的含义 //IO方向设置 #define DS18B2 ...
- STM32 GPIO的配置寄存器(CRL、CRH)快速学习
1.问题 在使用STM32的时候配置GPIO是最常见的操作,可以使用比较简单明白的库函数配置,但很繁杂.使用寄存器的方式可以快速配置,对于同一个IO口的输入输出都需要使用到的时候,比如IIC通讯的SD ...
- stm32定时器中断配置及使用
stm32定时器中断配置及使用 定时器中断就是:可以周期性的执行某些功能,而不受main函数的影响. 我们以通用定时器time3为例说明 1.首先配置时钟源为内部时钟,分频和充装载值根据自己需要填入, ...
最新文章
- gdoi2017总结
- 干货回顾丨机器学习笔记-----AP(affinity propagat)算法讲解及matlab实现
- 【转】Unity游戏开发图片纹理压缩方案
- Linux内存映射--mmap函数
- c++ vector 先进先出_C++ STL Vector(容器)学习
- VMware虚拟机安装红帽系统无法上网解决办法(转)
- 【鸿蒙 HarmonyOS】Ability 中使用纯代码绘制布局及 UI 组件
- 计算机视觉算法——目标检测网络总结
- java telnet乱码_telnet乱码的解决方法
- python log文件如何不写入syslog_Centos下python 对syslog重写进行日志记录
- 强大的独立日期选择器(date picker)插件 - Kalendae
- matlab机械手ikine函数,关于Mtalab-robotics工具箱中的fkine和ikine两个函数的问题讨论!...
- DBShop电子商务系统
- SQL Server 空间监测
- python 运行时 变量_python运行过程,变量,符号
- OpenGL简介+一个简单的程序
- unity场景素材_[游戏素材]游戏场景环境天气变化Unity游戏素材资源
- whereis命令详解
- Python 文字转语音(TTS)
- 影响力最大化 模拟爆发(粗糙笔记)
热门文章
- VS工作笔记-C++在release模式下可以进行调试
- c语言编译器app官网下载,c语言编译器
- php 在字符串中 找数字,php提取字符串中的数字
- 服务端api用php写还是用node,如何使用node搭建服务器,写接口,调接口,跨域
- python命令行输入函数回退_Anaconda--成功解决python2与python3之间随意切换的问题!...
- qq头像计算机系,QQ头像
- c/c++ 求字符数组长度(非所占内存大小)
- [Python]网络爬虫(11):亮剑!爬虫框架小抓抓Scrapy闪亮登场!
- c++程序设计中文件输入输出流知识点
- socket epoll网络编程实例