你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

看不懂为什么编译错误Error[Pe147]

[复制链接]
wrdt24435 提问时间:2018-7-23 20:33 /
本帖最后由 wrdt24435 于 2018-7-24 16:36 编辑

如图,我应该没定义错吧,图二是.h的定义
1.png
图二

图2

图2


在定义里右键Go to Definition of "KEY_Down"无法跳到函数,是定义和使用的错误么?

1.png








收藏 评论11 发布时间:2018-7-23 20:33

举报

11个回答
anobodykey 回答时间:2018-7-23 20:38:14
注意大小写,你函数的形参是GPIO_Pin,但你代码使用的是GPIO_PIN,第二个是提示你KEY_PORT没有定义,你找一下在哪里定义的
wrdt24435 回答时间:2018-7-23 20:53:17
anobodykey 发表于 2018-7-23 20:38
注意大小写,你函数的形参是GPIO_Pin,但你代码使用的是GPIO_PIN,第二个是提示你KEY_PORT没有定义,你找一下在 ...

改了,还是不行,不过错误降到只剩1了 3.png
anobodykey 回答时间:2018-7-23 21:09:53
wrdt24435 发表于 2018-7-23 20:53
改了,还是不行,不过错误降到只剩1了

多看提示:上面提示你的KEY_Down的声明出现了不兼容的情况,你可以查看你的BSP/key.h文件中的16行,对比一下有什么不同
STM1024 回答时间:2018-7-23 21:44:41
本帖最后由 stm1024 于 2018-7-23 21:49 编辑

问题不在函数的实现上,看报错,我觉得问题出现在这个函数的实参上。
我就想问一下,你的KEY1_PORT 和 KEY_PIN是都有定义吗?
看下面的报错信息,居然是undefined的
我觉得根据一般的套路,会在某个头文件上有:
#define KEY_PORT GPIOA
#define KEY_PORT GPIO_Pin_12
之类的,当然实际值是多少,还得根据你的硬件电路来确定。


似乎你的这个程序是按键检测,啰嗦点,给点小建议。
1.检查一下GPIO的初始化,确定KEY_PORT.GPIO_Mode=GPIO_Mode_IPU;
2.按键消抖处理。硬件没有你想象中的那么完美,为什么?自己去找资料;
3.进阶之后,用中断方式,而不是查询方式,这样更实用。
wenyangzeng 回答时间:2018-7-23 21:51:00
判断应该是该函数前面还有一个函数语法有错,比如大括号、小括号不配对等。
wrdt24435 回答时间:2018-7-24 09:22:42
stm1024 发表于 2018-7-23 21:44
问题不在函数的实现上,看报错,我觉得问题出现在这个函数的实参上。
我就想问一下,你的KEY1_PORT 和 KEY_ ...

之前的undefined没注意,如您所说是这么定义了用时没对上。
中断还不会,还在一步一步学,我对这错误的理解是函数的使用不符合定义,可是我定义是直接复制函数的,应该一样的啊,暂时看不懂错在哪
wrdt24435 回答时间:2018-7-24 09:30:02
wenyangzeng 发表于 2018-7-23 21:51
判断应该是该函数前面还有一个函数语法有错,比如大括号、小括号不配对等。 ...

检查了,上个函数没有语法错误,声明的也是
wrdt24435 回答时间:2018-7-24 09:37:40
本帖最后由 wrdt24435 于 2018-7-24 16:35 编辑
stm1024 发表于 2018-7-23 21:44
问题不在函数的实现上,看报错,我觉得问题出现在这个函数的实参上。
我就想问一下,你的KEY1_PORT 和 KEY_ ...

找到错误了,没有定义布尔变量stdbool.h头文件。。。
wrdt24435 回答时间:2018-7-24 09:39:00
本帖最后由 wrdt24435 于 2018-7-24 16:35 编辑
anobodykey 发表于 2018-7-23 21:09
多看提示:上面提示你的KEY_Down的声明出现了不兼容的情况,你可以查看你的BSP/key.h文件中的16行,对比一 ...

找到错误了,没有定义布尔变量stdbool.h头文件。。。
wrdt24435 回答时间:2018-7-24 16:34:41
anobodykey 发表于 2018-7-23 20:38
注意大小写,你函数的形参是GPIO_Pin,但你代码使用的是GPIO_PIN,第二个是提示你KEY_PORT没有定义,你找一下在 ...

找到错误了,没有定义布尔变量stdbool.h头文件。。。
STM1024 回答时间:2018-7-24 17:02:36
wrdt24435 发表于 2018-7-24 09:39
找到错误了,没有定义布尔变量stdbool.h头文件。。。

好吧……再啰嗦一次,bool类型不是ANSI C的基本类型!!!

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版