STM32F4外部高速晶振与stm32f4xx.c、stm32f4xx.h文件定义的晶振频率不符的解决办法

手里有一块stm32f405rgt6的板子,没有任何例程,但有原理图。
新建一个了工程,顺利下载到单片机,但是程序跑不起来。
dbug的时候出现Not a genuine ST Device!之后下载程序也就一直出现这个提示。
网上找了一下解决办法,原因应该是外部晶振的频率与stm32f4xx.c、stm32f4xx.h文件中外部晶振频率相关的定义不符。
默认的是外部晶振是8M的频率,而现在的板子上的是25M的有源晶振。
链接:http://www.openedv.com/forum.php?mod=viewthread&tid=281766&page=1#pid896550,但是没有说明具体怎么修改文件中外部晶振的频率定义,我的修改办法是:首先修改stm32f4xx.h头文件中的HSE_VALUE的值为25000000,原来的是8000000,如图1。

图1
然后修改stm32f4xx.c中PLL_M的值为25,原来为8,如图2。
STM32F4外部高速晶振与stm32f4xx.c、stm32f4xx.h文件定义的晶振频率不符的解决办法_第1张图片
最后按照前面的链接里的解决办法,将BOOT0上拉到3.3V,下载修改好的程序,然后再将BOOT0接地即可。
这块板子没有复位按键,采用的是上电自动复位的办法,下载完程序重新上电程序就顺利跑起来了。
移植工程如果遇到是外部高速晶振频率不同的问题,可以试试该解决办法。

你可能感兴趣的:(stm32)