×
单片机 > 单片机程序设计 > 详情

stm32系统时钟配置问题

发布时间:2020-05-22 发布时间:
|
系统从上电复位到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下运行。所以在使用哪个外设的时候,只需要使能相应的外设时钟就可以了

关键字:stm32  系统时钟  配置问题 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何升级STM32单片机的代码