我正在尝试用XC8编译器v1.20用MPLAB-X编译这(部分)代码:
typedef enum i2cMode {MASTER = 0,SLAVE=1,OFF=2} i2c_mode;
void i2c_init(i2c_mode mode, uint8_t bus);并且它位于头文件的内部。我尝试了每种组合,也没有数字关联,但最后它将始终输出以下内容:
(908) exit status = 1
make[2]: *** [build/pierin/production/main.p1] Error 1
../emu.X/i2c.h:48: error: label identifier expected
make[1]: *** [.build-conf] Error 2
../emu.X/i2c.h:48: error: "}" expected
make: *** [.build-impl] Error 2
../emu.X/i2c.h:48: error: no identifier in declaration
../emu.X/i2c.h:48: error: ";" expected
../emu.X/i2c.h:48: warning: missing basic type; int assumed
../emu.X/i2c.h:51: error: "," expected
../emu.X/i2c.h:51: error: can't mix prototyped and non-prototyped arguments
../emu.X/i2c.h:51: error: function body expected
main.c:41: error: undefined identifier "SLAVE"
main.c:41: error: too many function arguments其中48是枚举类型定义,51是函数原型。在main中,我可以看到这不会创建从属枚举,也不会创建原型。我需要使用正态变量吗?它应该可以工作,但事实并非如此。我想使用i2c_mode类型和枚举。这里是错误的还是没有必要的?
发布于 2015-02-24 01:43:58
我解决了。这是一个自动读取链接外围库的问题,它正在读取默认的i2c.h头文件,造成了冲突。更改枚举名称已经解决了问题。谢谢。
https://stackoverflow.com/questions/28666820
复制相似问题