由于工作需要,将部分STM32F429芯片替换为STM32F407芯片,本以为没有什么难度,但是还是踩了一些坑的,在此记录一下,也希望需要的人看到可以少走弯路。
基本过程
需要注意几点:
-
需要将正确的头文件“stm32f407xx.h”放到工程目录,如果没有,则编译器会去MDK的包里面去找。这里确实有这个文件,但是不一定适合,可能会报错:“Undefined symbyle IS_TIM_BREAK_INSTANCE…”。错误原因可参考以下链接:
参考文章 -
按照上述步骤完成后,开始编译,此时有可能会报错:“Undefined symbyle HAL_PWREx_EnableOverDrive…”。出现该错误是因为,F429打开了Over-Drive功能。可以超频到180M的时钟频率。而F407并不支持,将调用“HAL_PWREx_EnableOverDrive()”这个函数的地方屏蔽就好。
-
最后是修改时钟频率,F407最大频率是168M,如果之前设定的plln为360(对应F429主频180M),那么需要修改为336(对应F407主频168M)。