本帖最后由 aixiaofan1314 于 2013-3-14 08:30 编辑
编译器版本信息:MAPLAB 8.88 PICC-18_V9.80_mcc18.exe
器件选择PIC18F4550
使用PIC usb例程,编译时出现错误。错误信息如下:
pic18 usb.c: USBCtrlTrfSetupHandler()
365: wCount._word = 0;
^ (196) struct/union required
错误位置代码:
//------------------------------------字定义类型
typedef union _WORD
{
word _word;
struct
{
byte byte0;
byte byte1;
};
struct
{
BYTE Byte0;
BYTE Byte1;
};
struct
{
BYTE LowB;
BYTE HighB;
};
struct
{
byte v[2];
};
} WORD;
#define LSB(a) ((a).v[0]) //定义低字节(如果是WORD型的可以直接用这个替代高低字节)
#define MSB(a) ((a).v[1]) //定义高字节
WORD wCount; // Data counter 数据字节计数器
/*******************************
* USB控制传输设置处理函数
********************************/
void USBCtrlTrfSetupHandler()
{
ctrl_trf_state = WAIT_SETUP; // USB控制传输状态为等待
ctrl_trf_session_owner = MUID_NULL; //此时USB EP0端点数据不归任何类所有
wCount._word = 0; //字节计数器清0,用于记录传送数据的大小 <----此行错误
USBCheckStdRequest(); //检测USB的标准请求
if(ctrl_trf_session_owner == MUID_NULL) // 如果上边没有请求,或请求不存在,检测HID请求
{
USBCheckHIDRequest(); // USB HID请求检测
}//end if
USBCtrlEPServiceComplete(); // 控制传输完成
}//end USBCtrlTrfSetupHandler()
小弟新手上路,请各位大侠不吝指教~~~~~~~~~~~~~~~~~~~~~~~~~~
谢谢!
|