[建议]更新固件库的PLL_M为自动计算

[复制链接]
4092|4
 楼主| aozima 发表于 2013-6-17 10:27 | 显示全部楼层 |阅读模式
对于F2/F4,修改晶振频率,一般是在 stm32fxxx_conf.h 中自定义 HSE_VALUE
  1. #if defined  (HSE_VALUE)
  2. /* Redefine the HSE value; it's equal to 8 MHz on the STM32F4-DISCOVERY Kit */
  3. #undef HSE_VALUE
  4. #define HSE_VALUE    ((uint32_t)8000000)
  5. #endif /* HSE_VALUE */
但在
Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx\system_stm32f2xx.c
Libraries\CMSIS\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c
中,依然是固定的:
  1. /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
  2. #define PLL_M      25
  3. #define PLL_N      240
造成当晶振不为默认值(25M)时需要修改源文件,建议修改为:
  1. #define PLL_M      (HSE_VALUE / 1000000UL)
dirtwillfly 发表于 2013-6-17 14:44 | 显示全部楼层
好建议,帮顶。@香水城
IJK 发表于 2013-6-17 15:10 | 显示全部楼层
赞同。
最好再对 HSE_VALUE 的值进行一定的检查。
weiyuliang 发表于 2014-4-27 18:00 | 显示全部楼层
谢谢aozima同学提醒,
airwill 发表于 2014-4-27 20:20 | 显示全部楼层
这个建议很好. MCU 里面有很多的频率, 这些频率值还用个变量来保存.
我觉得宏来实现. 这样不仅节省了内存. 编译和代码效率也得到提高, 软件可靠性也得到提升了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:RTOS RT-Thread

55

主题

2040

帖子

23

粉丝
快速回复 在线客服 返回列表 返回顶部