WR_USB_CMD(CMD_GET_STATUS); /* 获取中断状态并取消中断请求 */ InterruptStatus =RD_USB_DAT();//上电后得到的数据 InterruptStatus=03H USB_INT_BUS_RESET1 =0CH USB_INT_EP0_SETUP =08H USB_INT_EP0_IN =00H USB_INT_EP0_OUT =07H USB_INT_BUS_RESET2 =0CH USB_INT_EP0_SETUP =08H USB_INT_EP0_IN =00H USB_INT_EP0_OUT =07H USB_INT_BUS_RESET2 =0CH USB_INT_EP0_SETUP USB_INT_BUS_RESET1,USB_INT_BUS_RESET2怎么处理。有什么区别 第1个USB_INT_EP0_SETUP;接收数据是 80 06 00 01 00 00 40 00 第2个USB_INT_EP0_SETUP;接收数据是 80 06 00 01 00 00 40 00 第3个USB_INT_EP0_SETUP;接收数据是 80 06 00 01 00 00 40 00 照理第2个不应该是那个命令了,应该是00 50 02 00 00 00 00 00 我想可能是处理GET_DESCRIPTOR有问题,或者是处理USB_INT_EP0_IN,USB_INT_EP0_OUT有问题。那个外置例子是不是有问题啊?还有例子上GET_DESCRIPTOR中把要发的描述符存下来然后不等主机的USB_INT_EP0_IN,就发给主机,第一次可能可以的可是当80 06 00 01 00 00 12 00就不行吧,还请高手指点
你用的是哪个例子啊,是不是在调试时出的问题啊
是的,USBEX.C
不好意思是我写的有问题,忘了写IE0 = 0;了,谢谢你,不过我还在调试,再有问提还要麻烦您!
好的。
我做的是HID键盘,现在枚举都通过了,setreport命令也能接受到LED的正确显示,可是CMD_GET_STATUS在命令后得到USB_INT_EP0_IN,USB_INT_EP0_OUT后,程序就不能进中断,也就得不到USB_INT_EP1_IN,我不知道是哪出了问题。//端点描述符 0x07, //bLength 0x05, //bDescriptorType 0x81, //bEndpointAddress 0x03, //bmAttributes 0x08,0x00, //wMaxPacketSize 0x0A //bInterval
上位机程序是不是要修改啊???