OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6170|回复: 10

关于keil编译的问题

[复制链接]

39

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2014-1-9
在线时间
8 小时
发表于 2018-9-5 16:55:08 | 显示全部楼层 |阅读模式
10金钱
我按照原子的教程,自己新建了一个F4的工程文件,但编译的时候出现两个stm32f4xx.h,导致编译不通过,很多定义重复了

123.png
但我USER文件下只有一个stm32f4xx.h,我也试过原子自带教程的工程文件,编译没有问题,能够通过。

肯定是我哪里没设置对出现的问题,我试着打开过这两个头文件,应该是同一个.h,请教一下谁遇到过这个问题

最佳答案

查看完整内容[请看2#楼]

http://bbs.eeworld.com.cn/thread-427197-1-1.html 看看这个有帮助没有
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
发表于 2018-9-5 16:55:09 | 显示全部楼层
回复

使用道具 举报

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
发表于 2018-9-5 16:56:41 | 显示全部楼层
错误提示是什么
回复

使用道具 举报

39

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2014-1-9
在线时间
8 小时
 楼主| 发表于 2018-9-5 16:59:56 | 显示全部楼层
本帖最后由 巫妖 于 2018-9-5 17:01 编辑
我查过这些错误,都是在stm32f4xx.h头文件里定义命名的
..\FWLIB\src\stm32f4xx_fmc.c(144): error:  #20: identifier "FMC_Bank1" is undefined
      FMC_Bank1->BTCR[FMC_Bank] = 0x000030DB;   
..\FWLIB\src\stm32f4xx_fmc.c(149): error:  #20: identifier "FMC_Bank1" is undefined
      FMC_Bank1->BTCR[FMC_Bank] = 0x000030D2;
..\FWLIB\src\stm32f4xx_fmc.c(151): error:  #20: identifier "FMC_Bank1" is undefined
    FMC_Bank1->BTCR[FMC_Bank + 1] = 0x0FFFFFFF;
..\FWLIB\src\stm32f4xx_fmc.c(152): error:  #20: identifier "FMC_Bank1E" is undefined
    FMC_Bank1E->BWTR[FMC_Bank] = 0x0FFFFFFF;  
..\FWLIB\src\stm32f4xx_fmc.c(191): error:  #20: identifier "FMC_Bank1" is undefined
    FMC_Bank1->BTCR[FMC_NORSRAMInitStruct->FMC_Bank] =   
..\FWLIB\src\stm32f4xx_fmc.c(242): error:  #20: identifier "FMC_Bank1E" is undefined
      FMC_Bank1E->BWTR[FMC_NORSRAMInitStruct->FMC_Bank] =   
..\FWLIB\src\stm32f4xx_fmc.c(252): error:  #20: identifier "FMC_Bank1E" is undefined
      FMC_Bank1E->BWTR[FMC_NORSRAMInitStruct->FMC_Bank] = 0x0FFFFFFF;
..\FWLIB\src\stm32f4xx_fmc.c(304): error:  #20: identifier "FMC_Bank1" is undefined
      FMC_Bank1->BTCR[FMC_Bank] |= BCR_MBKEN_SET;
..\FWLIB\src\stm32f4xx_fmc.c(309): error:  #20: identifier "FMC_Bank1" is undefined
      FMC_Bank1->BTCR[FMC_Bank] &= BCR_MBKEN_RESET;
..\FWLIB\src\stm32f4xx_fmc.c(377): error:  #20: identifier "FMC_Bank2" is undefined
      FMC_Bank2->PCR2 = 0x00000018;
..\FWLIB\src\stm32f4xx_fmc.c(386): error:  #20: identifier "FMC_Bank3" is undefined
      FMC_Bank3->PCR3 = 0x00000018;
..\FWLIB\src\stm32f4xx_fmc.c(445): error:  #20: identifier "FMC_Bank2" is undefined
      FMC_Bank2->PCR2 = tmppcr;
..\FWLIB\src\stm32f4xx_fmc.c(452): error:  #20: identifier "FMC_Bank3" is undefined
      FMC_Bank3->PCR3 = tmppcr;
..\FWLIB\src\stm32f4xx_fmc.c(504): error:  #20: identifier "FMC_Bank2" is undefined
        FMC_Bank2->PCR2 |= PCR_PBKEN_SET;
..\FWLIB\src\stm32f4xx_fmc.c(508): error:  #20: identifier "FMC_Bank3" is undefined
        FMC_Bank3->PCR3 |= PCR_PBKEN_SET;
..\FWLIB\src\stm32f4xx_fmc.c(516): error:  #20: identifier "FMC_Bank2" is undefined
        FMC_Bank2->PCR2 &= PCR_PBKEN_RESET;
..\FWLIB\src\stm32f4xx_fmc.c(520): error:  #20: identifier "FMC_Bank3" is undefined
        FMC_Bank3->PCR3 &= PCR_PBKEN_RESET;
..\FWLIB\src\stm32f4xx_fmc.c(544): error:  #20: identifier "FMC_Bank2" is undefined
        FMC_Bank2->PCR2 |= PCR_ECCEN_SET;
..\FWLIB\src\stm32f4xx_fmc.c(548): error:  #20: identifier "FMC_Bank3" is undefined
        FMC_Bank3->PCR3 |= PCR_ECCEN_SET;
..\FWLIB\src\stm32f4xx_fmc.c(556): error:  #20: identifier "FMC_Bank2" is undefined
        FMC_Bank2->PCR2 &= PCR_ECCEN_RESET;
..\FWLIB\src\stm32f4xx_fmc.c(560): error:  #20: identifier "FMC_Bank3" is undefined
        FMC_Bank3->PCR3 &= PCR_ECCEN_RESET;
..\FWLIB\src\stm32f4xx_fmc.c(580): error:  #20: identifier "FMC_Bank2" is undefined
      eccval = FMC_Bank2->ECCR2;
..\FWLIB\src\stm32f4xx_fmc.c(585): error:  #20: identifier "FMC_Bank3" is undefined
      eccval = FMC_Bank3->ECCR3;
..\FWLIB\src\stm32f4xx_fmc.c(640): error:  #20: identifier "FMC_Bank4" is undefined
    FMC_Bank4->PCR4 = 0x00000018;
..\FWLIB\src\stm32f4xx_fmc.c(676): error:  #20: identifier "FMC_Bank4" is undefined
    FMC_Bank4->PCR4 = (uint32_t)FMC_PCCARDInitStruct->FMC_Waitfeature |
..\FWLIB\src\stm32f4xx_fmc.c(739): error:  #20: identifier "FMC_Bank4" is undefined
      FMC_Bank4->PCR4 |= PCR_PBKEN_SET;
..\FWLIB\src\stm32f4xx_fmc.c(744): error:  #20: identifier "FMC_Bank4" is undefined
      FMC_Bank4->PCR4 &= PCR_PBKEN_RESET;
..\FWLIB\src\stm32f4xx_fmc.c(809): error:  #20: identifier "FMC_Bank5_6" is undefined
    FMC_Bank5_6->SDCR[FMC_Bank] = 0x000002D0;
..\FWLIB\src\stm32f4xx_fmc.c(868): error:  #20: identifier "FMC_Bank5_6" is undefined
      FMC_Bank5_6->SDCR[FMC_SDRAMInitStruct->FMC_Bank] = tmpr1;
..\FWLIB\src\stm32f4xx_fmc.c(876): error:  #20: identifier "FMC_Bank5_6" is undefined
      FMC_Bank5_6->SDCR[FMC_Bank1_SDRAM] = tmpr3;
..\FWLIB\src\stm32f4xx_fmc.c: 0 warnings, 30 errors
回复

使用道具 举报

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
发表于 2018-9-5 17:05:31 | 显示全部楼层
添加了stm32f4xx_fmc.c这个文件没
回复

使用道具 举报

39

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2014-1-9
在线时间
8 小时
 楼主| 发表于 2018-9-5 17:14:49 | 显示全部楼层
本帖最后由 巫妖 于 2018-9-5 17:17 编辑
124.png 125.png qiuzhicheng 发表于 2018-9-5 17:05添加了stm32f4xx_fmc.c这个文件没

添加了,都是照搬的工程文件。而且stm32f4xx_fmc.h里面也有stm32f4xx.h.其他.c里都只有一个stm32f4xx.h,就main.c里有两个,莫名其妙啊

回复

使用道具 举报

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
发表于 2018-9-5 17:21:45 | 显示全部楼层
发你工程看一下
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-4-6
在线时间
5 小时
发表于 2018-9-5 17:28:31 | 显示全部楼层
FMC必须去掉,头文件引入是不是重复了
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2018-10-24
在线时间
9 小时
发表于 2018-10-24 16:52:21 | 显示全部楼层
我也是一样的问题。选择Manage Project Items,往group里添加文件的时候,FWLIB的stm32f4xx_fmc.c 要删掉
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2019-4-20
在线时间
8 小时
发表于 2020-4-13 16:53:29 | 显示全部楼层
本帖最后由 wuweiwei 于 2020-4-13 16:55 编辑

stm32f4xx_fmc.c编译报错的真正原因并不是头文件重复包含或者工程只定义了STM32F40_41xxx宏,而是stm32f4xx.h中FMC_R_BASE和FSMC_R_BASE的基地址数值相等造成的,理由如下:
1.工程中同样添加了STM32F40_41xxx系列器件没有的其他外设驱动c文件,编译时并没有报错
2.头文件包含没有问题,报错的宏已经在stm32f4xx.h中条件定义过


C:\Users\Administrator\Desktop\fmc编译问题.PNG
fmc编译问题.png
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2019-4-20
在线时间
8 小时
发表于 2020-4-13 16:57:53 | 显示全部楼层
wuweiwei 发表于 2020-4-13 16:53
stm32f4xx_fmc.c编译报错的真正原因并不是头文件重复包含或者工程只定义了STM32F40_41xxx宏,而是stm32f4xx ...

至于为什么会这样我猜测可能和arm编译器具体的编译规则有关,可能同一个地址编译出两个命名不同的外设模块是不被允许的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-2 18:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表