新闻中心

EEPW首页>嵌入式系统>设计应用> stm32系统时钟配置问题

stm32系统时钟配置问题

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



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

本文引用地址://m.amcfsurvey.com/article/201611/322423.htm


#ifndefSTM32F10X_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下运行。所以在使用哪个外设的时候,只需要使能相应的外设时钟就可以了



评论


技术专区

关闭