在用IAR的EWARM的开发环境编译下,使用emum 类型产生枚举类型变量, 在编译时产生“enumerated type mixed with another...”告警,产生的原因可能和编译器有关,具体原因尚不清楚,但可以在调用处加入强制类型转换下,就可以避免告警,如下: typedef enum _cannum_
{
#if CAN_MAX_NUM == 1
CAN1 = 0 //CAN1模块
#elif CAN_MAX_NUM == 2
CAN1 = 0, //CAN1模块
CAN2 //CAN2模块
#elif CAN_MAX_NUM == 3
CAN1 = 0, //CAN1模块
CAN2, //CAN2模块
CAN3 //CAN3模块
#elif CAN_MAX_NUM == 4 //微处理器中含有2路CAN
CAN1 = 0, //CAN1模块
CAN2, //CAN2模块
CAN3, //CAN3模块
CAN4 //CAN4模块
#endif
} eCANNUM; ... WriteCANRcvCyBuf((eCANNUM)j); ... 在变量j前面加入eCANNUM强制类型转换下,就可解决问题。
|