STM32F40xx搭建Keil工程编译错误(stm32f4xx_fmc.c)(stm32f4xx_fsmc.c)
状况:
搭建完Keil工程后进行编译后发生如下的错误:
就是说一堆的宏没有定义。
原因:
stm32f4xx_fmc.c的在固件库中的一个外设,仅作用于STM32F429_439xx、STM32F446xx、STM32F469_479xx、STM32F427_437xx系列的芯片,如果不是这些芯片的话将不会引用stm32f4xx_fmc.h这个头文件,也就产生了宏没有定义的问题。
移植过程中出现的问题,原因是F42不支持FSMC,支持FMC,f407支持FSMC,编程前需要看手册啊
具体的说,我们在Option for Target的C++选项卡的Define填写了当前所使用芯片的所属系列。
而这个宏在stm32f4xx_conf.h文件中进入的分支并没有引用stm32f4xx_fmc.h这个头文件。
解决:
不要再Keil的分组中添加stm32f4xx_fmc.c文件,删除后重新编译即可。