我正在尝试为自定义操纵杆编写固件代码。为此,我在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
我真的不知道怎么做这个,希望有人可以提供帮助。
答案 0 :(得分:1)
这确实是一个错误的宏。 “USB_CFG_SERIAL_NUMBER_LEN”扩展为“2 *”,因为我将序列号定义为“1”,“2”,“3”,“4”,“5”,“6”,并想清楚数字是多少分组(“2 * 3”),忘记输入3了。
感谢您的帮助!