1 /*CPU跑72M的时候,各个系统的速度 2 频率定义函数:SystemInit()*/ 3 const uint32_t SystemFrequency = SYSCLK_FREQ_72MHz;//硬件频率72M 4 5 const uint32_t SystemFrequency_SysClk =SYSCLK_FREQ_72MHz;//系统时钟 6 7 const uint32_t SystemFrequency_AHBClk = SYSCLK_FREQ_72MHz;//AHB总线频率 8 9 const uint32_t SystemFrequency_APB1Clk = (SYSCLK_FREQ_72MHz/2); 10 //APB1总线 11 const uint32_t SystemFrequency_APB2Clk = SYSCLK_FREQ_72MHz;//APB2总线频率 12 13 14 15 16 /*如果频率不是72M(最高是80M),如果需要修改频率的话,可以如下:*/ 17 void RCC_HSE_Configuration(void) //HSE作为PLL时钟,PLL作为SYSCLK 18 19 { 20 RCC_DeInit(); //将外设RCC寄存器重设为缺省值 21 RCC_HSEConfig(RCC_HSE_ON);//设置外部高速晶振(HSE) HSE晶振打开(ON) 22 if(RCC_WaitForHSEStartUp() == SUCCESS) //等待HSE起振, SUCCESS:HSE晶振稳定且就绪 23 { 24 25 RCC_HCLKConfig(RCC_SYSCLK_Div1);//设置AHB时钟(HCLK)RCC_SYSCLK_Div1——AHB时钟 = 系统时 26 27 RCC_PCLK2Config(RCC_HCLK_Div1); //设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟 = HCLK 28 29 RCC_PCLK1Config(RCC_HCLK_Div2); //设置低速AHB时钟(PCLK1)RCC_HCLK_Div2——APB1时钟 = HCLK 30 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);//设置PLL时钟源及倍频系数 31 32 RCC_PLLCmd(ENABLE); //使能PLL 33 34 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ;//检查指定的RCC标志位(PLL准备好标志)设置与否 35 36 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //设置系统时钟(SYSCLK) 37 while(RCC_GetSYSCLKSource() != 0x08); //0x08:PLL作为系统时钟 38 39 } 40 41 } 42
时间: 2024-10-04 14:51:41