如何修改STM32系统时钟?操作方法解析

2023-09-01  

  在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法

  如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理:

  1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。

  2)对于少于100脚的产品,有2种接法:

  2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。

  2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出‘0’。此方法可以减小功耗并(相对上面2.1)节省2个外部电阻。

  

  HSI内部8MHz的RC振荡器的误差在1%左右,内部RC振荡器的精度通常比用HSE(外部晶振)要差上十倍以上。STM32的ISP就是用(HSI)内部RC振荡器。

  修改STM32系统时钟操作方法

  新的STM32控制板如何调试

  具体步骤如下:

  第一步,全局搜索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速度跑了。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。