访问电脑版页面

导航:老古开发网手机版STM32单片机STM32单片机定时器

stm32 系统时钟设置

导读:如图1:时钟树,可见Stm32有5个时钟源。8M HSI RC:内部时钟,从图上看,有两路分支,一个是直接作为系统时钟SYSCLK使用,另一个是先二分频后,再通过PLLMUL倍频作为系统时钟SYSCLK4-16M HSE OSC:外部晶振作为时钟源
关键字:
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 }


来源:互联网   作者:karen  2018/12/11 10:20:01
栏目: [ STM32单片机定时器]

相关阅读

STM32F407定时器TIM1中断

STM32单片机使用定时器中断方式实现毫秒级延时的设计

stm32定时器中断与误区

STM32单片机输出比较模式解析

STM32定时器配置定时时间总结

STM32定时器时间的计算方法

基于STM32定时器的三种中心对齐计数模式

STM32系列芯片定时器的主要功能及应用解析

STM32定时器基本计数原理解析

STM32之系统时钟基定时器

STM32F429的定时器的使用方法

STM32定时器原理与使用

STM32单片机通用定时器的编程设计

一个关于STM32定时器的CCR清零话题

STM32单片机定时器的时钟源设置

关于STM32F4定时器时钟频率问题

基于STM32定时器实现毫秒延时函数

STM32单片机通用定时器对lED灯的翻转控制设计

stm32 系统时钟设置

STM32高级控制定时器1的使用