将以8M晶振写的STM32F4程序改为适配25M的程序

有很多用户在使用正点原子的程序下载进去后发现程序无法运行,再次下载无法执行,这是晶振不匹配原因造成的,我们板子是使用25M的晶振(官方也是25M,为了照顾以太网频率),而原子哥程序是8M外部晶振编写的,解决方案:

1.修改源程序,将8M晶振程序改为25M晶振的程序:

点击system_stm32f4xx.c文件,找到 #define PLL_M 25 这条语句,将参数值25改为8,在这条语句上面,右键点击 Go To Definination Of “HSE_VALUE”

进入到这条语句#define HSE_VALUE ((uint32_t)25000000) 将25000000改为 8000000. 修改后重新编译链接,下载就行。

2.强行下载方法,不管你遇到任何程序方面的问题,造成无法下载的情况请使用这种方法强行下载:原则上使用任何IDE或下载程序,使用jlink或者stlink确保调试器设置正确,按着复位键,点击下载或者连接目标板,然后松开复位键,不行就多试几次,就能强行下载或者连接目标板了。

3.如果没有调试器,使用串口配合boot也可以进行isp下载,也可以覆盖原程序,STM32F4系列也可以使用USB口进行下载,这种方法,只需要一根USB线就行,超级方便,具体参照

硬件准备

软件准备

首先将hex制作DFU使用的dfu文件

安装之后会有一个文件转换器

../_images/转换器.png

将Hex文件转为DFU

../_images/转换器2.png

得到可用的dfu文件,待用。

连接USB到核心板,进入DFU模式

在连接PC机正常供电的情况下,将核心板上的boot0置1,有个是拨码开关短接,有的是按键按住,目的boot0维持高电平,然后按复位按键就可以进入DFU模式。

../_images/dfu1.png ../_images/dfu2.jpg

有些板子为了方便用户进入DFU模式,我们创新设计了一个BOOT0按键,按着这个按键,再按一下复位键就可以完成进入DFU模式,这就避免了无短接工具或者用户已经在板子上焊接上了排针或排母的情况下无法下手的尴尬。

将制作好的DFU文件烧写进核心板

打开DfuSe软件点击Choose按键,选择之前下载好的DFU镜像文件保存路径,选择合适的镜像文件,点击Upgrade按键进行下载,等待下载完毕,按复位键或者点击Leave DFU mode按键离开DFU模式进行正常模式。

../_images/dfu3.png ../_images/dfu4.png