1.总共有五个时钟源
①内部高速48MHz HSI48 它可以直接作为SYSCLK,也可以变为PLLCLK后作为SYSCLK,同时它关联了CRS
②内部高速8MHz(程序复位之后默认的就是以此为系统时钟)HSI8 它可以直接作为SYSCLK,也可以变为PLLCLK后作为SYSCLK,这个也挂着Flash编程FLITCLK,也可以直接给I2C1
③内部低速的40KHz(LSI40) 独立看门狗使用的是这个时钟,它也可以给RTCCLK
④外部高速4-32MHz(外部就是你另外买的片外的)它可以32分频后作为RTCCLK,也可以直接作为作为SYSCLK,也可以变为PLLCLK后作为SYSCLK
⑤外部低速32.768KHz 它只能作为RTCCLK
⑥内部高速14MHz(专门用于ADC模拟数字转换HSI14)
2.时钟树中有说明,主要就是配置SYSCLK和RTCCLK
3.SYSCLK,系统主要时钟,这个是最主要的。
系统时钟源选择RCC_CFGR SW[1:0] 00 HSI8 01 HSE4-32 10 PLL 11 HSI48
所有的muc都有内部时钟,起来之后依靠内部工作,然后可以切换到其他的时钟,时钟配置的步骤:1.你要切换的时钟参数配置好,然后打开。2,等待时钟稳定才能继续 3,切换到时钟。
RCC->CR=RCC->CR & (~RCC_CR_HSITRIM) | ((uint32_t)(16) <<3); //写成复位值 RCC->CR|=RCC_CR_HSION; while( (RCC->CR&RCC_CR_HSIRDY)==0 ); RCC->CFGR=0x00; //总线不分频,HSI while( (RCC->CFGR&RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI ); //时钟切换过来了
时间: 2024-12-18 22:27:51