[初始化函数]SystemInit()

//主要功能,初始化时钟  
  
void SystemInit (void)     
{     
  RCC->CR |= (uint32_t)0x00000001;   //开启内部8Mhz时钟      
  /*  
  配置时钟,系统时钟最大输出72Mhz,HSE出现故障时,HSI作为系统时钟,HSE作为系统时钟,
  AHB为SYSCLK不分频,APB1不分频 APB2不分频,二分频后作为ADC输出,关闭微控制器时钟输出 
  */
  RCC->CFGR &= (uint32_t)0xF8FF0000;  
  RCC->CR &= (uint32_t)0xFEF6FFFF; //关闭PLL,HSE,时钟监测器  
  RCC->CR &= (uint32_t)0xFFFBFFFF; //外部4-16MHz振荡器没有旁路    
  RCC->CFGR &= (uint32_t)0xFF80FFFF; //HSI振荡器时钟经2分频后作为PLL输入时钟,HSE不分频,PLL 2倍频输出,PLL时钟1.5倍分频作为USB时钟    
  RCC->CIR = 0x00000000; //关闭所有时钟中断   
  SetSysClock(); //....   
}   
  
  
//可以对照着《STM32F10xxx参考手册》的时钟树图看

你可能感兴趣的:(stm32学习笔记)