wrdt24435 发表于 2018-7-23 20:33:53

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

本帖最后由 wrdt24435 于 2018-7-24 16:36 编辑

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

图二

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










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了

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头文件。。。
页: [1] 2
查看完整版本: 看不懂为什么编译错误Error[Pe147]