STM32时钟系统

Posted 想成为大师啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32时钟系统相关的知识,希望对你有一定的参考价值。

参考资料

主要参照正点原子的视频
STM32F1精英可参考4.3小节时钟系统

时钟系统框图

在这里插入图片描述

RCC的结构体定义

typedef struct
{
  __IO uint32_t CR; // HEI,HSE,CSS,PLL等的使能和就绪标志位(时钟安全系统(CSS)系统)
  __IO uint32_t CFGR; // PLL等的时钟源选择,分频系数设定
  __IO uint32_t CIR; // 清除/使能时钟就绪中断
  __IO uint32_t APB2RSTR; // APB2线上外设复位寄存器
  __IO uint32_t APB1RSTR; // APB1线上外设复位寄存器
  __IO uint32_t AHBENR; // DMA,SDIO等时钟使能
  __IO uint32_t APB2ENR; // APB2线上外设时钟使能
  __IO uint32_t APB1ENR; // APB1线上外设时钟使能
  __IO uint32_t BDCR; // 备份域控制寄存器
  __IO uint32_t CSR; // 控制状态寄存器

#ifdef STM32F10X_CL  
  __IO uint32_t AHBRSTR;
  __IO uint32_t CFGR2;
#endif /* STM32F10X_CL */ 

#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL)   
  uint32_t RESERVED0;
  __IO uint32_t CFGR2;
#endif /* STM32F10X_LD_VL || STM32F10X_MD_VL || STM32F10X_HD_VL */ 
} RCC_TypeDef;

RCC相关头文件和固件库源文件

1.时钟使能配置
RCC_LSEConfig(), RCC_HESConfig(), RCC_HSICmd(),
RCC_LSICmd(), RCC_PLLCmd()…

2.时钟源相关配置
RCC_PLLConfig(), RCC_SYSCLKConfig(), RCC_RTCCLKConfig(),…

3.分频系数选择配置
RCC_HCLKConfig(), RCC_PCLK1Config(), RCC_PCLK2Config(),…

4.外设时钟使能
RCC_APB1PeriphClockCmd(); // APB1线上外设时钟使能
RCC_APB2PeriphClockCmd(); // APB2线上外设时钟使能
RCC_AHBPeriphClockCmd(); // AHB线上外设时钟使能

5.其他外设时钟使能
RCC_ADCCLKConfig();
RCC_RTCCLKConfig();

6.状态参数获取参数
RCC_GetClocksFreq();
RCC_GetSYSCLKSource();
RCC_GetFlagStatus();

7.RCC中断相关函数
RCC_ITConfig(), RCC_GetITStatus(), RCC_ClearITPendingBit()…

总结

1.STM32有5个时钟源:HSI,HSE,LSI,LSE,PLL

1.HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。

2.HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。

3.LSI是低速内部时钟,RC振荡器,频率为40KHz,提供低功耗时钟。WDG

4.LES是低速外部时钟,接频率为3.768KHz的石英晶体。RTC

5.PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2,HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

2.系统时钟SYSCLK可来源于三个时钟源

1.HSI振荡器时钟

2.HSE振荡器时钟

3.PLL时钟

3.STM可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL输出的2分频,HSE,HSI,或者系统时钟

4.任何一个外设在使用之前,必须首先使能其相应的时钟

以上是关于STM32时钟系统的主要内容,如果未能解决你的问题,请参考以下文章

STM32F103C8T6使用内部时钟作为系统时钟

stm32为啥要配置系统时钟

STM32时钟系统

STM32 时钟系统

STM32F4系统时钟配置及描述

stm32之时钟控制