stm32芯片手册上有张图表示的很清楚,一共有4个时钟源:
1.HSI(内部高速时钟 8MHz)提供可以位系统时钟提供时钟源
2.HSE(外部高速时钟)可以提供系统时钟和RTC时钟时钟源
3.LSE(低速外部时钟32.768kHz)可以为可以为RTC提供时钟源
4.LSI(低速内部时钟)可以为独立看门狗提供时钟源
首先分析一下ST公司给的库函数:我用的是3.5的库
我们看看SystemInit里是什么
void SystemInit (void)
{
RCC->CR |= (uint32_t)0x00000001; //打开HSI内部高速时钟
#ifndef STM32F10X_CL
RCC->CFGR &= (uint32_t)0xF8FF0000;//CFCG寄存器的27位没用,所以这个宏没用
#else //MCO的两位清零,不往外输出时钟,0-15位清零,PLCK 2分频给ADC,HCLK不分频给APB2
RCC->CFGR &= (uint32_t)0xF0FF0000;//HCLK不分频给APB1,sysclk不分频给AHB,HSI用作系统时钟,
#endif /*
stm32 RCC 时钟分析
于 2015-03-21 17:04:07 首次发布
本文详细分析了STM32芯片中RCC(复用功能控制器)的时钟源,包括HSI、HSE、LSE和LSI,并以STM32F10X系列为例,探讨了库函数`SystemInit`和`SetSysClock`在时钟初始化中的作用。通过设置不同宏定义,如`SYSCLK_FREQ_HSE`,选择不同的系统时钟频率,最终实现72MHz的系统时钟配置。
摘要由CSDN通过智能技术生成