修改STM32主频

材料

  • STM32F407VET6
  • 20M晶振

目标

  • 配置成80M系统主频(这里进行了降频,由于项目需要,一般是配置成168M的)

步骤

  • 修改system_stm32f4xx.c文件,PLL_M=10,PLL_N=80,PLL_P=2

  • 修改Stm32f4xx.h文件,将HSE_VALUE改成晶振频率20000000

参考315,331行
PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
SYSCLK = PLL_VCO / PLL_P

这里我们 HSE_VALUE=20M(晶振频率),PLL_M=10,PLL_N=80,PLL_P=2,代入上面公式可以计算得SYSCLK=80M

再记录一下PLL_Q,他是用来配置USB OTG FS, SDIO and RNG Clock时钟的,公式为USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ,因为我这个项目不用这几个外设,所以我就保持了默认7,如果要使用这几个外设,那么一定要注意,USB OTG FS的时钟频率手册明确说明了是需要配置成48M的

拿一个8M外部晶振,主频168M的工程举个栗子,他的配置如下
PLL_M=8,PLL_N=336,PLL_P=2,PLL_Q=7 USB OTG FS, SDIO and RNG Clock = 8/8*336/7 = 48M

posted @ 2021-12-11 10:20  isyf  阅读(1529)  评论(0编辑  收藏  举报