Rebuild started: Project: LightingControlSystem
Rebuild target 'SW_RotaryEncoder'
compiling control_sys.c...
.\Common\inc\key.h(25): error C127: 'keyLock': member has invalid type
.\Common\inc\key.h(25): error C127: 'shortTouchFlag': member has invalid type
.\Common\inc\key.h(25): error C127: 'isLongPress': member has invalid type
.\Common\inc\key.h(25): error C127: 'isShortPress': member has invalid type
.\Common\inc\key.h(25): error C127: 'isReleaseKey': member has invalid type
compiling lamp_svc.c...
compiling main.c...
compiling sys_init.c...
compiling task.c...
.\Common\inc\key.h(25): error C127: 'keyLock': member has invalid type
.\Common\inc\key.h(25): error C127: 'shortTouchFlag': member has invalid type
.\Common\inc\key.h(25): error C127: 'isLongPress': member has invalid type
.\Common\inc\key.h(25): error C127: 'isShortPress': member has invalid type
.\Common\inc\key.h(25): error C127: 'isReleaseKey': member has invalid type
App\src\task.c(52): warning C122: '[]': unknown size
App\src\task.c(52): warning C72: sizeof returns zero
compiling lighting_mode.c...
compiling can.c...
compiling can_svc.c...
compiling delay.c...
compiling gpio.c...
compiling key.c...
.\Common\inc\key.h(25): error C127: 'keyLock': member has invalid type
.\Common\inc\key.h(25): error C127: 'shortTouchFlag': member has invalid type
.\Common\inc\key.h(25): error C127: 'isLongPress': member has invalid type
.\Common\inc\key.h(25): error C127: 'isShortPress': member has invalid type
.\Common\inc\key.h(25): error C127: 'isReleaseKey': member has invalid type
compiling led.c...
compiling nvic.c...
compiling ring_buffer.c...
compiling rs485.c...
compiling timer.c...
compiling uart.c...
compiling eeprom.c...
compiling clock.c...
compiling pwm.c...
compiling rotary_encoder.c...
Target not created.
Build Time Elapsed: 00:00:02
key.h的定义
typedef struct KeyInfo
{
u8 keyCode;
u16 keyTimeCnt; // 按键去抖动延时计数器
u16 keyUpTimeCnt; // 松开按键时间
BOOL keyLock; // 按键触发后自锁的变量标记
BOOL shortTouchFlag; // 短按触发标记
BOOL isLongPress; // 是否长按
BOOL isShortPress; // 是否短按
BOOL isReleaseKey; // 是否松开
} KeyInfo_t;
复制代码
但是只要将DEF.H中的
typedef bit BOOL;
修改为
typedef unsigned char BOOL;
就可以正常编译,是因为官方的库定义出错还是什么原因;keil不支持typedef bit 的定义问题