不存在的运算符的错误消息

时间:2014-02-03 23:15:17

标签: c avr avr-gcc

我正在尝试为自定义操纵杆编写固件代码。为此,我在atmega8微控制器上使用vusb。当我编译(使用avrgcc)时,它会发出以下错误:

usbdrv / usbdrv.c:93:54:错误:运算符'*'没有正确的操作数

然而,相应的行(及其周围环境)甚至没有任何'*' - 运算符:

#if USB_CFG_DESCR_PROPS_STRING_PRODUCT == 0 && USB_CFG_DEVICE_NAME_LEN
#undef USB_CFG_DESCR_PROPS_STRING_PRODUCT
#define USB_CFG_DESCR_PROPS_STRING_PRODUCT   sizeof(usbDescriptorStringDevice)
PROGMEM const int  usbDescriptorStringDevice[] = {
    USB_STRING_DESCRIPTOR_HEADER(USB_CFG_DEVICE_NAME_LEN),
    USB_CFG_DEVICE_NAME
};
#endif

//The following line is the one it complains about:
#if USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER == 0 && USB_CFG_SERIAL_NUMBER_LEN
#undef USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER sizeof(usbDescriptorStringSerialNumber)
PROGMEM const int usbDescriptorStringSerialNumber[] = {
    USB_STRING_DESCRIPTOR_HEADER(USB_CFG_SERIAL_NUMBER_LEN),
    USB_CFG_SERIAL_NUMBER
};
#endif

我真的不知道怎么做这个,希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:1)

这确实是一个错误的宏。 “USB_CFG_SERIAL_NUMBER_LEN”扩展为“2 *”,因为我将序列号定义为“1”,“2”,“3”,“4”,“5”,“6”,并想清楚数字是多少分组(“2 * 3”),忘记输入3了。

感谢您的帮助!