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

电子常识

2568人已加入

描述

  在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速度跑了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分