从以前某个项目拷贝的代码,沿用了以前IAR System提供的USB例程代码(据说之前的项目USB是调通过的,但是人找不到)。
现象:
1 连接usb线后,可以正常观察到suspend中断、wakeup中断,并且可以进到USB_SetupHandler;
2 继续往下跟,发现走到了UsbGetStatus。
3 在UsbGetStatus处打断点,连续断住4次后,windows上弹出发现不可识别USB设备的提示。
从上述现象看,USB模块应该已经开始工作了。usb模块被wakeup后,开始setup过程,收到了GET_STATUS的标准请求(EP0)。
看了很多关于枚举的介绍,收到的第一个包不应该是GET_DESCRIPTOR吗?
如果有可能收到GET_STATUS请求,那我该怎么处理呢?(现在的代码判断设备不是处于Address状态或者Configured状态会直接将EP设置成stall)
|