微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32系统时钟配置问题

stm32系统时钟配置问题

时间:11-27 来源:互联网 点击:
系统从上电复位到72mz配置好之前,提供时钟的是内如高速rc振荡器提供8MZ的频率,这个由下面void SystemInit (void)函数的前面的一部分代码来完成的和保证的:



RCC->CR |= (uint32_t)0x00000001;


#ifndef STM32F10X_CL
RCC->CFGR &= (uint32_t)0xF8FF0000;
#else
RCC->CFGR &= (uint32_t)0xF0FF0000;
#endif


RCC->CR &= (uint32_t)0xFEF6FFFF;


RCC->CR &= (uint32_t)0xFFFBFFFF;


RCC->CFGR &= (uint32_t)0xFF80FFFF;

#ifdef STM32F10X_CL

RCC->CR &= (uint32_t)0xEBFFFFFF;


RCC->CIR = 0x00FF0000;


RCC->CFGR2 = 0x00000000;
#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)

RCC->CIR = 0x009F0000;


RCC->CFGR2 = 0x00000000;
#else

RCC->CIR = 0x009F0000;
#endif

#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
#ifdef DATA_IN_ExtSRAM
SystemInit_ExtMemCtl();
#endif
#endif

接着void SystemInit (void)调用 SetSysClock();函数,将系统时钟配置到72m,将AHB,APB1,APB2等外设之前的时钟都配置好,然后切换到72mz下运行。所以在使用哪个外设的时候,只需要使能相应的外设时钟就可以了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top