您当前的位置:首页 > 基础知识 > 单片机  > 计数器与定时器

教你如何修改STM32系统时钟

来源:21ic 关键字:STM32   单片机   系统时钟   

 今天,公司丢了一个新的STM32控制板让我调试,一想还是很好调试。结果傻眼了,晶振是12MHZ啊。网上找了一些资料,现在整理一下,供大家参考使用。

具体步骤如下:

第一步,全局搜索HSE_VALUE

#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */

修改为:

#define HSE_VALUE ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */

第二步,打开system_stm32f10x.c,修改PLL参数,将

/* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */

RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |

RCC_CFGR_PLLMULL));

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);

修改为:

/* PLL configuration: PLLCLK = HSE * 6 = 72 MHz */

RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |

RCC_CFGR_PLLMULL));

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);//12MHZ,SYSCLK=HSE*6=72MHZ

或者一句RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6); 就可以解决了

这样就可以进行正常的72MHZ速度跑了。