在固件库里,stm32f4xx.h文件中,需要打开的对应的宏是#define STM32F40_41xxx 在system_stm32f4xx.c中,不一样的地方是PLL_M这个宏 官方发布的库里面PLL_M的值是25 而在stm32f4discovery的demo的程序里这个值是#define PLL_M 8 因此这里需要修改一下,就可以用trace=168MHz来进行调试了。
这个参数的说明是 /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */ /* SYSCLK = PLL_VCO / PLL_P */
这里面,PLL_P=2, PLL_N=336, PLL_M=8 这样的组合 加上 硬件上 晶振外部接的是8MHz的,这样就是: SYSCLK = (8000 000 / 8)*336/2 = 8 000 000 * (336/(8*2)) = 8 000 000 * 21 = 168MHz
至此,系统时钟这里的问题我们发现并解决了。^ ^
|