时钟系统知识总结:
1、5个时钟源:HSL、HSE、LSI、LSE、PLL。
a、HSI是高速内部时钟,约等于8MHz,是由内部RC振荡器产生
b、HSE是高速外部时钟,由外部时钟源或晶振产生(4-16MHz)
c、LSI低速内部时钟,由内部RC振荡器产生(约40KHz)->独立看门狗时钟(低功耗)
d、LSE低速外部时钟,接频率为320768KHz的晶振。
e、PLL为锁相环倍频输出,即倍频器,产生PLLCLK,作为系统时钟来源。
2、系统时钟SYSCLK可来源于三个时钟源:
a、HSI震荡器时钟
b、HSE振荡器时钟
c、PLL时钟
3、stm32可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL输出的2分频、HSI、HSE、或者系统时钟。
4、任何一个外设在使用之前,必须首先使能其相应的时钟。
RCC相关头文件和固件库源文件:
头文件:stm32f10x_rcc.h
源文件:stm32f10x_rcc.c
a、时钟使能配置:RCC_LSEConfig()、RCC_HSEConfig()、RCC_HSICmd()、RCC_LSICmd()、RCC_PLLCmd()....
b、时钟源相关配置:RCC_PLLConfig()、RCC_SYSCLKConfig()(系统时钟)、RCC_RTCCLKConfig()......
c、分频系数选择配置:RCC_HCLKConfig()、RCC_PCLK1Config()、RCC_PCLK2Config()......
d、外设时钟使能:RCC_APB1PeriphClockCmd()(总线时钟低速)、RCC_APB2PeriphClockCmd()(高速)、RCC_AHBPeriphClockCmd()(总线时钟);
e、其它外设时钟配置:RCC_ADCCLKConfig();RCC_RTCCLKConfig();
f、状态参数获取函数:RCC_GetClocksFreq()、RCC_GetSYSCLKSource()、RCC_GetFlagStatus();
g、RCC中断相关函数:RCC_ITConfig()、RCC_GetITStatus()、RCC_ClearITPendingBit();