STM32中RCC时钟简介

来源:互联网 发布:自动拨号软件 编辑:程序博客网 时间:2024/05/17 17:59

HSE = Hight-speed external clock singal 

HSI = Hight-speed internal clock singal

LSI =  Low-speed external clock singal

LSE = Low-speed internal clock singal

HSE 为外部高速外部晶振 (4~16M HSE OSC,推荐为 8 M 的OSC )

HSI 为高速内部晶振            (8 M 的HSE OSC)

LSI 为低速内部晶振            (在30kHz和60kHz之间)

-------LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和
-------自动唤醒单元提供时钟。LSI时钟频率大约40kHz(在30kHz和60kHz之间)。进一步信息请参考数
-------据手册中有关电气特性部分。

LSE 为低速外部晶振           (32.768 KHZ)

-------LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供
-------一个低功耗且精确的时钟源。

单片机要工作的话,首先要有时钟。单片机的时钟由晶振产生,所以晶振之于单片机就像心脏之于咱们人一样,单片机没了这颗心脏(晶振)的话就没法工作。 

STM32的系统时钟可以由以下三种不同的时钟源来驱动

1、HSI 震荡器时钟

2、HSE 振荡器时钟

3、PLL 时钟  (锁相环时钟)

让单片机工作时,首先可通过设置以上三种中的任何一种来产生单片机的系统时钟,即是SYSCLK(注意SYSCLK不能超过72MZ).

 在系统时钟SYSCLK产生后又会经过AHB总线来产生AHB时钟,即HCLK。

在产生AHB时钟之后,通过一定的预分频后再产生AHB1(即是低速的AHB时钟PCLK1)跟 AHB2(即是高速的AHB时钟PCLK2)这两个时钟来驱动单片机的外设 。这两个时钟也是也是我们在使用单片机的外设(即是单片机里面的各个资源模块)时首先要做的工作。

下面列举下不同的时钟对应于单片机的那些资源模块。

AHB2  时钟用于以下资源:

RCC_APB2Periph_AFIO                           功能复用 IO时钟 
RCC_APB2Periph_GPIOA                        GPIOA 时钟 
RCC_APB2Periph_GPIOB                        GPIOB 时钟 
RCC_APB2Periph_GPIOC                        GPIOC 时钟 
RCC_APB2Periph_GPIOD                        GPIOD 时钟 
RCC_APB2Periph_GPIOE                        GPIOE 时钟 
RCC_APB2Periph_ADC1                          ADC1 时钟 
RCC_APB2Periph_ADC2                          ADC2 时钟 
RCC_APB2Periph_TIM1                           TIM1 时钟 
RCC_APB2Periph_SPI1                           SPI1 时钟 
RCC_APB2Periph_USART1                     USART1 时钟 
RCC_APB2Periph_ALL  全部                   APB2外设时钟

AHB1 时钟用于以下资源:

RCC_APB1Periph_TIM2                          TIM2 时钟 
RCC_APB1Periph_TIM3                          TIM3 时钟 
RCC_APB1Periph_TIM4                          TIM4 时钟 
RCC_APB1Periph_WWDG                      WWDG时钟 
RCC_APB1Periph_SPI2                          SPI2 时钟 
RCC_APB1Periph_USART2                    USART2 时钟 
RCC_APB1Periph_USART3                    USART3 时钟 
RCC_APB1Periph_I2C1                           I2C1 时钟 
RCC_APB1Periph_I2C2                           I2C2 时钟 
RCC_APB1Periph_USB                           USB 时钟 
RCC_APB1Periph_CAN                           CAN时钟

RTC 时钟来源:

RCC_RTCCLKSource_LSE                    选择 LSE 作为 RTC 时钟 
RCC_RTCCLKSource_LSI                      选择 LSI 作为 RTC 时钟 
RCC_RTCCLKSource_HSE_Div128        选择 HSE 时钟频率除以 128 作为 RTC时钟

ADC 时钟来源:

该时钟源自 APB2 时钟(PCLK2)

RCC_PCLK2_Div2  ADC 时钟  = PCLK / 2 
RCC_PCLK2_Div4  ADC 时钟  = PCLK / 4 
RCC_PCLK2_Div6  ADC 时钟  = PCLK / 6 
RCC_PCLK2_Div8  ADC 时钟  = PCLK / 8

USB 时钟来源:

该时钟来源于PLLCLK时钟的预分频

 

总结:要使单片机工作,首先得设置单片机的时钟,一般的步骤如下

1、设置系统时钟   SYSCLK 

2、设置AHB(PCLK)时钟

3、设置AHB1(PCLK1)跟AHB2(PCLK2)时钟

4、设置完毕

原创粉丝点击