状况:

搭建完Keil工程后进行编译后发生如下的错误:

compiling stm32f4xx_fmc.c...
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(144): error:  #20: identifier "FMC_Bank1" is undefinedFMC_Bank1->BTCR[FMC_Bank] = 0x000030DB;
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(149): error:  #20: identifier "FMC_Bank1" is undefinedFMC_Bank1->BTCR[FMC_Bank] = 0x000030D2;
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(151): error:  #20: identifier "FMC_Bank1" is undefinedFMC_Bank1->BTCR[FMC_Bank + 1] = 0x0FFFFFFF;
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(152): error:  #20: identifier "FMC_Bank1E" is undefinedFMC_Bank1E->BWTR[FMC_Bank] = 0x0FFFFFFF;
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(191): error:  #20: identifier "FMC_Bank1" is undefinedtmpbcr = FMC_Bank1->BTCR[FMC_NORSRAMInitStruct->FMC_Bank];
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(195): error:  #20: identifier "FMC_BCR1_MBKEN" is undefinedtmpbcr &= ((uint32_t)~(FMC_BCR1_MBKEN   | FMC_BCR1_MUXEN    | FMC_BCR1_MTYP     | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(195): error:  #20: identifier "FMC_BCR1_MUXEN" is undefinedtmpbcr &= ((uint32_t)~(FMC_BCR1_MBKEN   | FMC_BCR1_MUXEN    | FMC_BCR1_MTYP     | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(195): error:  #20: identifier "FMC_BCR1_MTYP" is undefinedtmpbcr &= ((uint32_t)~(FMC_BCR1_MBKEN   | FMC_BCR1_MUXEN    | FMC_BCR1_MTYP     | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(196): error:  #20: identifier "FMC_BCR1_MWID" is undefinedFMC_BCR1_MWID     | FMC_BCR1_FACCEN   | FMC_BCR1_BURSTEN  | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(196): error:  #20: identifier "FMC_BCR1_FACCEN" is undefinedFMC_BCR1_MWID     | FMC_BCR1_FACCEN   | FMC_BCR1_BURSTEN  | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(196): error:  #20: identifier "FMC_BCR1_BURSTEN" is undefinedFMC_BCR1_MWID     | FMC_BCR1_FACCEN   | FMC_BCR1_BURSTEN  | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(197): error:  #20: identifier "FMC_BCR1_WAITPOL" is undefinedFMC_BCR1_WAITPOL  | FMC_BCR1_WRAPMOD  | FMC_BCR1_WAITCFG  | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(197): error:  #20: identifier "FMC_BCR1_WRAPMOD" is undefinedFMC_BCR1_WAITPOL  | FMC_BCR1_WRAPMOD  | FMC_BCR1_WAITCFG  | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(197): error:  #20: identifier "FMC_BCR1_WAITCFG" is undefinedFMC_BCR1_WAITPOL  | FMC_BCR1_WRAPMOD  | FMC_BCR1_WAITCFG  | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(198): error:  #20: identifier "FMC_BCR1_WREN" is undefinedFMC_BCR1_WREN     | FMC_BCR1_WAITEN   | FMC_BCR1_EXTMOD   | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(198): error:  #20: identifier "FMC_BCR1_WAITEN" is undefinedFMC_BCR1_WREN     | FMC_BCR1_WAITEN   | FMC_BCR1_EXTMOD   | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(198): error:  #20: identifier "FMC_BCR1_EXTMOD" is undefinedFMC_BCR1_WREN     | FMC_BCR1_WAITEN   | FMC_BCR1_EXTMOD   | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(199): error:  #20: identifier "FMC_BCR1_ASYNCWAIT" is undefinedFMC_BCR1_ASYNCWAIT| FMC_BCR1_CBURSTRW | FMC_BCR1_CCLKEN));
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(199): error:  #20: identifier "FMC_BCR1_CBURSTRW" is undefinedFMC_BCR1_ASYNCWAIT| FMC_BCR1_CBURSTRW | FMC_BCR1_CCLKEN));
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(199): error:  #20: identifier "FMC_BCR1_CCLKEN" is undefinedFMC_BCR1_ASYNCWAIT| FMC_BCR1_CBURSTRW | FMC_BCR1_CCLKEN));
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(253): error:  #20: identifier "FMC_Bank1E" is undefinedtmpbwr = FMC_Bank1E->BWTR[FMC_NORSRAMInitStruct->FMC_Bank];
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(256): error:  #20: identifier "FMC_BWTR1_ADDSET" is undefinedtmpbwr &= ((uint32_t)~(FMC_BWTR1_ADDSET  | FMC_BWTR1_ADDHLD | FMC_BWTR1_DATAST | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(256): error:  #20: identifier "FMC_BWTR1_ADDHLD" is undefinedtmpbwr &= ((uint32_t)~(FMC_BWTR1_ADDSET  | FMC_BWTR1_ADDHLD | FMC_BWTR1_DATAST | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(256): error:  #20: identifier "FMC_BWTR1_DATAST" is undefinedtmpbwr &= ((uint32_t)~(FMC_BWTR1_ADDSET  | FMC_BWTR1_ADDHLD | FMC_BWTR1_DATAST | \
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(257): error:  #20: identifier "FMC_BWTR1_BUSTURN" is undefinedFMC_BWTR1_BUSTURN | FMC_BWTR1_ACCMOD));
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(257): error:  #20: identifier "FMC_BWTR1_ACCMOD" is undefinedFMC_BWTR1_BUSTURN | FMC_BWTR1_ACCMOD));
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(269): error:  #20: identifier "FMC_Bank1E" is undefinedFMC_Bank1E->BWTR[FMC_NORSRAMInitStruct->FMC_Bank] = 0x0FFFFFFF;
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(321): error:  #20: identifier "FMC_Bank1" is undefinedFMC_Bank1->BTCR[FMC_Bank] |= BCR_MBKEN_SET;
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(326): error:  #20: identifier "FMC_Bank1" is undefinedFMC_Bank1->BTCR[FMC_Bank] &= BCR_MBKEN_RESET;
..\..\CodeFile\Bsp\stm32f4xx_fmc.c(394): error:  #20: identifier "FMC_Bank2" is undefinedFMC_Bank2->PCR2 = 0x00000018;
..\..\CodeFile\Bsp\stm32f4xx_fmc.c: 0 warnings, 30 errors
compiling stm32f4xx_fsmc.c...

就是说一堆的宏没有定义。


原因:

stm32f4xx_fmc.c的在固件库中的一个外设,仅作用于STM32F429_439xxSTM32F446xxSTM32F469_479xxSTM32F427_437xx系列的芯片,如果不是这些芯片的话将不会引用stm32f4xx_fmc.h这个头文件,也就产生了宏没有定义的问题。

具体的说,我们在Option for TargetC++选项卡Define填写了当前所使用芯片的所属系列。

而这个宏在stm32f4xx_conf.h文件中进入的分支并没有引用stm32f4xx_fmc.h这个头文件。


解决:

不要再Keil的分组中添加stm32f4xx_fmc.c文件,删除后重新编译即可。

参考博客1:https://blog.csdn.net/BobHHH/article/details/81018862
参考博客2:https://blog.csdn.net/Cowena/article/details/49994743

STM32F40xx搭建Keil工程编译错误(stm32f4xx_fmc.c)相关推荐

  1. 换了编译环境/电脑 keil提示编译错误—>修改编译路径

    换了编译环境/电脑 keil提示编译错误->修改编译路径 前同事,微信发送过来的代码(STM32)提示编译有一个错误 经过查找自己的keil安装路径是C盘,而不是D盘,于是点击进opinion ...

  2. Windows Java JavaFX IntelliJ IDEA 开发环境搭建 创建工程 编译运行 打包分发 自定义运行时

    博文目录 文章目录 本文说明 JavaFX 简单说明 JavaFX 版本说明 JavaFX 与 JDK 的关系 JavaFX 与 JDK Modular (JDK 9 模块化系统) JavaFX 模块 ...

  3. KEIL常见编译错误和警告解决方案汇总

    写在开头 本文主要汇总在使用KEIL的开发过程中,遇到的一些编译错误和警告的处理方法,自己作为一个记录,同时分享给各位有缘人,希望有所帮助!!谢谢~ 正文 [ warning: #186-D: poi ...

  4. keil 工程编译后出现 file has been changed outside the editor, reload?

    如图,每次编译后出现这个提示,并不是出现在编译前. 开始不知道是什么原因,造成的,以为工程出现了问题,每次遇到都是重新建个工程,比较麻烦,后面看到提示是 *.MAP 被打开了,但是笔者遇到的不是,后面 ...

  5. QEMU工程编译错误解决

    一 背景 在ubuntu16.04新系统没有运行过qemu,这时候configure qemu工程会有一些错误,本文列出解决方法. 二 问题及解决 1. ERROR: glib-2.40 gthrea ...

  6. xcode工程编译错误:The maximum number of apps for free development profiles has been reached.

    真机调试免费App ID出现的问题 The maximum number of apps for free development profiles has been reached. 免费应用程序调 ...

  7. QT工程编译错误:No outputs specified for item “DlgCreateInstance.ui“

    问题描述 No outputs specified for item "DlgCreateInstance.ui". Its custom build command will b ...

  8. qtxlsx编译报错_qt5.12搭建qtxlsx库读取excel表格编译错误和解决方法第二讲

    qt5.12mingw64编译环境搭建qtxlsx库编译错误第二讲 最近一直在做这个库的环境搭建,还是遇到了几个小小的错误,想把他记录下来,以后无论使用什么样的环境,我们都可以开心快乐地搭建了呀. 编 ...

  9. STM32F4 之 keil 工程建立

    注:该文是对自己搭建 keil 工程所做精简记录,详细内容可参考<STM32F4开发指南-库函数版本_V1.1> 1 下载 pack 包 在 MDK5 安装完成后,要让 MDK5 支持 S ...

最新文章

  1. 自己试验写的一个文本转语音的一个小程序
  2. HEOI2017游记
  3. 【自动驾驶】相机标定 疑问总结
  4. 获取另一个驱动的设备结构体_字符设备驱动的另一种写法
  5. 全排列及相关扩展算法(一)——基础的回溯递归实现全排列算法
  6. Php刷新重载id,php 使用 __call重载
  7. android listview item 展开动画,android的ListView点击item使item展开的做法的实现代码
  8. ckrule规则编辑器在wpf中的使用
  9. Bug(七)—— error LNK2019:无法解析的外部符号
  10. matlab读取excel里的数据并用imagesc画图
  11. 嫦娥四号的通讯速率,为何没有视频直播
  12. nodejs后台系列--第六篇-把nodejs后台部署到云服务器上面
  13. 2021-4月最全停词表(1893个),速取
  14. linux运行directory,我在linux里用命令出来is a directory是怎么回事
  15. 如何写introduction
  16. 【常用工具类】EasyExcel
  17. 三星手机大量死机!我反编译折腾半天后,发现竟然一个汉字引发的....
  18. 清北师哥推荐的CV/NLP 算法工程师培养计划,强无敌!
  19. 计算机中f4的应用,Excel中F4键的9个功能,提高90%工作效率
  20. TensorFlow入门之二:tensorflow手写数字识别

热门文章

  1. CSDN开发者周刊第 21期:Wi-Fi 之父辞世,谷歌服务器再次全球宕机;Windows 10 将支持安卓应用
  2. 基于Transformer实现电影评论星级分类任务
  3. php医院预约挂号系统
  4. HTML5期末大作业:网站——卡通漫画游戏官方网页 (萌王) 13个页面 HTML+CSS+JavaScript ~ 学生HTML个人网页作业作品下载 ~ web课程设计网页规划与设计
  5. javascript百炼成仙 第一章 掌握JavaScript基础 1.9 循环遍历的奥妙
  6. 网络舆情分析技术 读书笔记1
  7. python上市公司_Python批量下载上交所上市公司报告
  8. Shell脚本(三)
  9. python使用Tesseract,pytesseract图片处理识别(1)
  10. 计算机辅助设计软件应用答案,专科《计算机辅助设计软件地应用》_试卷_答案.docx...