|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
[mw_shl_code=applescript,true]void RCC_HSE_Init(uint32_t RCC_PLLMul_x)//范围2-16
{
__IO uint32_t HSES_tatus=0;
RCC_DeInit();//重置RCC,不然不会有效果
RCC_HSEConfig(RCC_HSE_ON);//使能HSE
HSES_tatus=RCC_WaitForHSEStartUp();//获取HSI状态,等待HSI稳定
if(HSES_tatus==SUCCESS)//判断HSE的状态,是否已启动
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//从FLASH预取指使能
FLASH_SetLatency(FLASH_Latency_2);//flash预取指等待时间配置
//对AHB APB1 APB2分频
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_x);//配置PLL时钟源和倍频因子(官方库中声明要先设置后打开PLL)
RCC_PLLCmd(ENABLE);//使能PLL
while( RCC_GetFlagStatus( RCC_FLAG_PLLRDY) == RESET);//等待PLL状态稳定后跳出语句
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK );//等待系统时钟切换完成
while(RCC_GetSYSCLKSource()!=0x08);
}
else////HSE启动判断,如果启动失败时在此操作
{
}
}[/mw_shl_code]
此程序可以将CPU运行频率进行超频,超频范围:
#define RCC_PLLMul_2 ((uint32_t)0x00000000)
#define RCC_PLLMul_3 ((uint32_t)0x00040000)
#define RCC_PLLMul_4 ((uint32_t)0x00080000)
#define RCC_PLLMul_5 ((uint32_t)0x000C0000)
#define RCC_PLLMul_6 ((uint32_t)0x00100000)
#define RCC_PLLMul_7 ((uint32_t)0x00140000)
#define RCC_PLLMul_8 ((uint32_t)0x00180000)
#define RCC_PLLMul_9 ((uint32_t)0x001C0000)
#define RCC_PLLMul_10 ((uint32_t)0x00200000)
#define RCC_PLLMul_11 ((uint32_t)0x00240000)
#define RCC_PLLMul_12 ((uint32_t)0x00280000)
#define RCC_PLLMul_13 ((uint32_t)0x002C0000)
#define RCC_PLLMul_14 ((uint32_t)0x00300000)
#define RCC_PLLMul_15 ((uint32_t)0x00340000)
#define RCC_PLLMul_16 ((uint32_t)0x00380000)
假设外部晶振为8M,选择RCC_PLLMul_9 则是8Mhz*9=72Mhz依次类推,
例如当前配置:RCC_HSE_Init(RCC_PLLMul_12);

超频有风险,请谨慎使用
一时超频一时爽
一直超频一直爽
遇见BUG火葬场
BUG让你怀疑人生
|
|