stm32 系统时钟设置

发布者:EtherealLove最新更新时间:2016-12-26 来源: eefocus关键字:stm32  系统时钟设置 手机看文章 扫描二维码
随时随地手机看文章

如图1:时钟树,可见Stm32有5个时钟源。

8M HSI RC:内部时钟,从图上看,有两路分支,一个是直接作为系统时钟SYSCLK使用,另一个是先二分频后,再通过PLLMUL倍频作为系统时钟SYSCLK

4-16M HSE OSC:外部晶振作为时钟源,可以看做有3路分支,第一是直接作为系统时钟SYSCLK使用,第二个通过PLL倍频后作为系统时钟SYSCLK,第三个是128分频后作为RTC时钟输入

32.768kHz LSE OSC:低速外部时钟源,可直接用作RTC时钟输入

40kHz LSI RC:低速内部时钟源,有两路分支,一个用作RTC时钟,一个用作看门狗时钟

PLLCLK:可以直接看做倍频器,也不能说得上是时钟源,和以上某些时钟源配合使用,配置系统时钟

掌握以上几个之后,直接看图就很容易配置相应的时钟源了

一下以外部晶振8M通过倍频作为系统时钟使用

Stm32时钟设置如图:假如我们要设置PPL倍频后的时钟作为系统时钟。首先,PLL时钟来自两个地方,一个是来自HSI2分频得到,一个是来自HSE直接或者2分频得到。我们用HSE作为PLL输入源的话,则必须先使能HSE时钟源,通过设置PLLXTPRE设置是否二分频输入。接着,既然选择HSE为PLL输入源,怎必须设置相应寄存器把HSE作为PLL时钟输入。再就是设置倍频PLLMUL位,把频率上升到需要的频率,注意最大频率不能超过72MHz。最后设置AHB等分频,供给系统外设。

图1:时钟树

系统时钟设置函数如下:



1 void SYSCLK_Init(u8 PLLMUL)//PLL倍频值

 2 {

 3  RCC->CR|=1<<16;//HSEON=1 时钟使能

 4 while(RCC->CR&(1<<17)==0);//等待外部时钟就绪

 5 

 6 RCC->CFGR|=0X00000400;

 7 

 8 RCC->CFGR&=~(1<<17);//HSE不分频

 9 RCC->CFGR|=1<<16;//    设置HSE作为PLL时钟源

10 FLASH->ACR|=0x32;//FLASH 2个延时周期 注意:这里必须有,否则设置不成功

11 

12 RCC->CFGR|=(PLLMUL-2)<<18;//9倍频

13 

14 RCC->CFGR&=0xffffff0c;//AHB不分频

15 RCC->CFGR|=0x00000002;//PLL作为系统时钟

16 

17 RCC->CR|=1<<24;//enable pll

18 while((RCC->CR&1<<25)==0);//pll ready

19 }


关键字:stm32  系统时钟设置 引用地址:stm32 系统时钟设置

上一篇:stm32 dac库函数解读
下一篇:stm32 dac 配置过程

推荐阅读最新更新时间:2024-03-16 15:27

毕业设计| STM32单片机控制的智能家居系统设计
☞ 智能家居系统功能概述 上面视频演示的STM32智能家居的功能是: ✔ 通过语音识别和上位机App进行控制 ✔ 实现有人闯入自动警报 ✔ 照明控制,温度和湿度控制,空气质量测量,家用电器定时和自动窗帘等功能的控制 主控是STM32F103RCT6单片机,连接到每个传感器。通过LD3320语音芯片生成语音信号到MCU的串口,在串口识别出发送的数据后,可以控制每个传感器,还通过蓝牙HC05将AT命令连接发送到手机App的控制端,进而控制家电。 ☞ 离线语音识别功能: 该功能的语音识别词分为两级: 第一级识别词:“小白”用来唤醒智能家居系统,此时LD3320的模块灯常亮。 第二级识别词用来控制“家居”,如:“开灯”“
[单片机]
毕业设计| <font color='red'>STM32</font>单片机控制的智能家居<font color='red'>系统</font>设计
STM32从入门到精通—I2C 简介
I2C端口,即内部集成电路接口,I2C总线接口用作微控制器和I2C串行总线之间的接口,提供多主模式功能,可以控制所有I2C总线特定的序列、协议、仲裁和时序。它支持标准和快速模式。 I2C可用于多种用途,包括CRC生成和验证、SMBus(系统管理总线)以及PMBus(电源管理总线)。 I2C主要特性 并行总线/I2C协议转换器 多主模式功能:同一接口既可用作主模式也可用作从模式 I2C主模式特性: 1. 时钟生成 2. 起始位和停止位生成 I2C从模式特性: 1. 可编程I2C地址检测 2. 双寻址模式,可对2个从地址应答 3. 停止位检测 7位/10位寻址以及广播呼叫的生成和检测 支持不同的通信速度: 1
[单片机]
对于STM32别名区的理解
1. 什么是位段、位带别名区? 2. 它有什么好处? 答1: 是这样的,记得MCS51吗? MCS51就是有位操作,以一位(BIT)为数据对象的操作, MCS51可以简单的将P1口的第2位独立操作: P1.2=0;P1.2=1 ; 就是这样把P1口的第三个脚(BIT2)置0置。 而现在STM32的位段、位带别名区就为了实现这样的功能。 对象可以是SRAM,I/O外设空间。实现对这些地方的某一位的操作。 它是这样的。在寻址空间(32位地址是 4GB )另一地方,取个别名区空间,从这地址开始处,每一个字(32BIT) 就对应SRAM或I/O的一位。
[单片机]
STM32 GPIO 寄存器配置
一.CRH和CRL的使用:fficeffice / CRH和CRL的使用基本相同,CRH用于控制GPIOX(X表示A---G)的高8位(Pin15---Pin8),而CRL用于控制GPIOX(X表示A---G)的低8位(Pin7----Pin0)。 二.ODR的使用: 1. RCC- APB2ENR|=1 2; //使能PORTA时钟 GPIOA- CRH&=0XFFFFFFF0;//清除该位原来的设置 GPIOA- CRH|=0X00000003;//PA8 推挽输出 GPIOA- ODR|=
[单片机]
STM32固件库文件分析
1-汇编编写的启动文件 startup_stm32f10x_hd.s:设置堆栈指针、设置PC指针、初始化中断向量表、配置系统时钟、对用C库函数_main最终去到C的世界 2-时钟配置文件 system_stm32f10x.c:把外部时钟HSE=8M,经过PLL倍频为72M。 3-外设相关的 stm32f10x.h:实现了内核之外的外设的寄存器映射 xxx:GPIO、USRAT、I2C、SPI、FSMC stm32f10x_xx.c:外设的驱动函数库文件 stm32f10x_xx.h:存放外设的初始化结构体,外设初始化结构体成员的参数列表,外设固件库函数的声明 4-内核相关的 CMSIS - Cortex 微控制器软件接
[单片机]
关于STM32虚拟蜡烛效果测试
很简单实现的一个东西。就只需要一个 口,一个麦克风,还有刷图片来形成动态效果,麦克风的也也很简单。就这样能实现出一个吹蜡烛的效果出来。至于这个想法也是基于自己之前玩过手机打火机的联想到了。自己还加了,播放生日快乐歌。
[机器人]
关于STM32函数定义
1.*(__IO uint8_t *) CIR_BYTE3_ADDRESS #define __IO volatile /*! Defines 'read / write' permissions 声明 volatile ,目的:使编译器不优化该变量。从相应变量内存中取数。 /* Check the parameters */ assert_param(IS_TIM_ALL_PERIPH(TIMx)); //assert _param函数作参数检查用 2. static: static局部变量中文名叫静态局部变量。它与普通的局部变量比起来有如下几个区别: 1)位
[单片机]
大神教你如何快速使用DMA处理ADC
ADC: 1.STM32内部的ADC模块有三个ADC1,ADC2,ADC3,他们彼此独立,所以可以进行同步采样。 2ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生,要在RCC_CFGR配置,再ADC自己的寄存器中在没有时钟分频的配置位。 3.ADC转换时间: STM32F103xx增强型产,时钟为56MHz时为1μ s( 时钟为72MHz为1.17 μ s) 4.ADC的转换精度默认设置为12位,输入范围:ADC输入范围:V REF-≤ VIN≤ VREF+ 5.共有18个通道,其中外部16个通道,内部两个通道,内部温度传感器连接在ADC1_IN16,内部参考电压V REFINT连接在ADC1_IN17 6
[单片机]
大神教你如何快速使用DMA处理ADC
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved