(六)STM32的时钟系统

  

在STM32中,一共有5个时钟源,分别是HSI、HSE、LSI、LSE、PLL

(1) HSI是高速内部时钟,RC振荡器,频率为8MHz;
(2)
HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围是4MHz – 16MHz;
(3) LSI是低速内部时钟,RC振荡器,频率为40KHz;
(4)
LSE是低速外部时钟,接频率为32.768KHz的石英晶体;
(5) PLL为锁相环倍频输出,严格的来说并不算一个独立的时钟源,PLL的输入可以接HSI/2、HSE或者HSE/2。倍频可选择为2
– 16倍,但是其输出频率最大不得超过72MHz。

其中,40kHz的LSI供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源还可以选择LSE,或者是HSE的128分频。

  STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能从PLL端获取,可以选择为1.5分频或者1分频,也就是,当需使用到USB模块时,PLL必须使能,并且时钟配置为48MHz或72MHz。

  另外STM32还可以选择一个时钟信号输出到MCO脚(PA.8)上,可以选择为PLL输出的2分频、HSI、HSE或者系统时钟。

  系统时钟SYSCLK,它是提供STM32中绝大部分部件工作的时钟源。系统时钟可以选择为PLL输出、HSI、HSE。系统时钟最大频率为72MHz,它通过AHB分频器分频后送给各个模块使用,AHB分频器可以选择1、2、4、8、16、64、128、256、512分频,其分频器输出的时钟送给5大模块使用:

(1) 送给AHB总线、内核、内存和DMA使用的HCLK时钟;

(2) 通过8分频后送给Cortex的系统定时器时钟;
(3) 直接送给Cortex的空闲运行时钟FCLK;
(4)
送给APB1分频器。APB1分频器可以选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz),另一路送给定时器(Timer)2、  3、4倍频器使用。该倍频器可以选择1或者2倍频,时钟输出供定时器2、3、4使用。

(5)
送给APB2分频器。APB2分频器可以选择1、2、4、8、16分频,其输出一路供APB2外设使用(PCLK2,最大频率72MHz),另外一路送给定时器(Timer)1倍频使用。该倍频器可以选择1或2倍频,时钟输出供定时器1使用。另外APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC分频器可选择为2、4、6、8分频。

  需要注意的是定时器的倍频器,当APB的分频为1时,它的倍频值为1,否则它的倍频值就为2

  连接在APB1(低速外设)上的设备有:电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看门狗、Timer2、Timer3、Timer4。

  

  连接在APB2(高速外设)上的设备有:UART1、SPI1、Timer1、ADC1、ADC2、GPIOx(PA~PE)、第二功能IO口。

  注意USB模块虽然需要一个单独的48MHz的时钟信号,但是它应该不是供USB模块工作的时钟,而只是提供给串行接口引擎(SIE)使用的时钟。USB模块的工作时钟应该是由APB1提供的。

2.
STM32时钟的初始化
        开发板已经外接了一个8MHz的晶振,因此将采用HSE时钟,在MDK编译平台中,程序的时钟设置参数流程如下:

(1)
将RCC寄存器重新设置为默认值:RCC_DeInit;
(2) 打开外部高速时钟晶振HSE:
RCC_HSEConfig(RCC_HSE_ON);
(3) 等待外部高速时钟晶振工作: HSEStartUpStatus =
RCC_WaitForHSEStartUp();
(4)
设置AHB时钟(HCLK):  RCC_HCLKConfig;

(5) 设置高速AHB时钟(APB2):
RCC_PCLK2Config;
(6) 设置低速AHB时钟(APB1):
RCC_PCLK1Config;
(7) 设置PLL: 
   RCC_PLLConfig;

(8) 打开PLL: 
   RCC_PLLCmd(ENABLE);

(9) 等待PLL工作:
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
(10) 设置系统时钟: 
  RCC_SYSCLKConfig;
(11)
判断PLL是否是系统时钟:  while(RCC_GetSYSCLKSource()
!= 0x08);
(12)
打开要使用的外设时钟:  RCC_APB1PerphClockCmd()….

时间: 2024-10-15 01:26:21

(六)STM32的时钟系统的相关文章

嵌入式Linux裸机开发(六)——S5PV210时钟系统

嵌入式Linux裸机开发(六)--S5PV210时钟系统 一.时钟系统简介 外设工作需要一定频率的时钟,这些时钟都由系统时钟提供.系统时钟一般由外部低频24MHZ晶体振荡器通过锁相环电路PLL倍频产生.通过外部的低频晶体振荡器产生系统时钟不仅可以减少干扰还可以降低成本.外设的工作频率越高,功耗越高,越不稳定.通过关闭外设的时钟可以关闭外设. 二.时钟域 S5PV210 中包含 3 大类时钟 domain, 分别是主系统时钟 domain (简称 MSYS).显示相关的时钟 domain (DSY

[转] STM32各种时钟的区别

[原创]:http://m.oschina.net/blog/129357 我在原创的基础又从另一位博主处引用了一些内容. 时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是必要的,有助于深入理解STM32.     下面是从网上找的一个STM32时钟框图,比<STM32中文参考手册>里面的是中途看起来清晰一些:         重要的时钟:   PLLCLK,SYSCLK,HCKL,PCLK1,PCLK2 之间的关系要弄清楚; 1.HSI:高速内部时钟信号 stm3

关于STM32时钟系统

初学STM32,感觉最蛋疼的是它的时钟系统,每次看到它的那个时钟树就有点晕,虽然看了很多这方面的资料,甚至也已经写过很多STM32的模块代码,做过一些小项目,但一直还是对这一块模模糊糊,似懂非懂,所以想把自己对它的一点点认识写出来,一步一步,直到完全搞通的那一天,(这些内容并非自己原创,只是想帮助自己理解) 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. HSI是高速内部时钟,RC振荡器,频率为8MHz. HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频

STM32时钟系统

一.在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频率为8MHz. ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz.一般接8MHZ. ③LSI是低速内部时钟,RC振荡器,频率为40kHz. ④LSE是低速外部时钟,接频率为32.768kHz的石英晶体. ⑤PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2.HSE或者HSE/2.倍频可选择为2~16倍,但是其输出频率最大不得超过72

智能时钟系统

基于STC90C516RD+的模块化可拓展智能时钟系统 --------------------------------------------------------------------------------------------------------------------------------------------- 功能一:显示时间并使用红外遥控器校准,闹钟设定功能:   功能二:计时器功能,具有清零,暂停功能,设定时间的上限制: 功能三:温度显示功能: 功能四:红外遥控器

STM32之时钟

1.时钟源 三个不同的时钟源可做系统时钟(SYSCLK): HSI 振荡器时钟 :高速内部时钟 HSE 振荡器时钟:高速外部时钟 PLL 时钟 两个二级时钟 LSI(低速内部时钟) :32kHz 低速内部 RC (LSI RC) 独立看门狗时钟源,RTC 可用于自动唤醒停止/待机模式. LSE(低速外部时钟):32.768kHz 低速外部晶振 (LSE crystal) ,可选择作为 RTC(RTCCLK) 时钟源 每一个时钟源不需要时都可以被选择性关闭,用来节省系统电源消耗 预分频器被用来设置

MSP430F5529时钟系统深究

1.为什么要进行时钟管理? 时钟系统是一个数字器件的命脉,对于普通的51单片机来说,它的时钟来源只有外部晶振,然后每12个振荡周期完成一个基本操作,所以也叫做12T单片机,但对于当前高级一点的单片机来说,比如MSP430F5529有5个时钟来源,经过UCS(Unified Clock System,通用时钟系统)模块之后,产生MCLK(Master Clock),SMCLK(Subsystem master clock ),ACLK(Auxiliary clock)三个时钟:对于更高端的单片机,

【STM32H7教程】第14章 STM32H7的电源,复位和时钟系统

完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第14章       STM32H7的电源,复位和时钟系统 本章教程继续为大家讲解学习STM32H7的必备知识点电源,复位和时钟系统.掌握这三方面的知识点对后面的学习大有裨益. 14.1 初学者重要提示 14.2 电源 14.3 硬件复位 14.4 软件复位 14.5 RCC时钟控制 14.6 总结 14.1 初学者重要提示 1.  电源管理部分涉及到的各种低功

总结:S5PV210时钟系统

在数据手册<S5PV210_UM_REV1.1>中的section 02_system/3 CLOCK CONTROLLER(354页) 一.时钟域 在S5PV210的SoC中,时钟系统分为三个区域:MSYS.DSYS.PSYS. (1)MSYS:CPU(Cortex-A8内核).DRAM控制器(DMC0和DMC1).IRAM.IROM等 (2)DSYS:主要是视频图像解码相关的时钟 (3)PSYS:内部外设相关(串口.SD.USB.GPIO.IIC.SPI等) 二.时钟源 可以通过四个晶振作