STM32F407ZG单片机晶振由例程默认推荐的8M换为自定义的4-26M时的注意事项

相信作为一名STM32新手,大家都是从官网上下载例程来学习。现在firmwave的最新版本为1.1.0,下载地址为http://www.st.com/stonline/stappl/resourceSelector/app?page=resourceSelector&doctype=FIRMWARE&SubClassID=1521


在这个例程里面,默认用到的是8M的外部晶振,现在就有一个问题,如果外部晶振不是8M,而是其他比如16M时,我们应该修改哪些地方才能让程序正常运行呢。

以下由8M换为16M为例。


修改的地方之一:stm32f4xx_conf.h里面的HSE_VALUE,系统默认采用外部8M晶振,所以 #define HSE_VALUE    ((uint32_t)8000000) ,现把它修改为 #define HSE_VALUE    ((uint32_t)16000000) 


修改的地方之二:系统通过PLL倍频到168M,所以在配置PLL的时候,也需要作相应的修改。在system_stm32f4xx.c里,默认的配置为以下:

[cpp]  view plain copy
  1. /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */  
  2. #define PLL_M      8  
  3. #define PLL_N      336  
  4.   
  5. /* SYSCLK = PLL_VCO / PLL_P */  
  6. #define PLL_P      2  
  7.   
  8. /* USB OTG FS, SDIO and RNG Clock =  PLL_VCO / PLLQ */  
  9. #define PLL_Q      7  



需要把PLL_M修改为16,不然会超频到336M的主频,使STM32不能正常工作,常见表现为掉进HardFault_Handler()中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值