当前位置: 代码迷 >> 驱动开发 >> Cortex-M3的usb驱动枚举的有关问题。USB驱动高手来看看。高分感谢
  详细解决方案

Cortex-M3的usb驱动枚举的有关问题。USB驱动高手来看看。高分感谢

热度:237   发布时间:2016-04-28 10:43:46.0
Cortex-M3的usb驱动枚举的问题。USB驱动高手来看看。高分感谢
在原先的USB鼠标驱动中加入了一套DFU的接口。配置描述符中也改了bNumInterfaces=2.。。wTotallength长度也修改了。但驱动无法进入配置状态。

xp主机知道是个USB鼠标设备。但是配置无法成功。 

else if(FM3_USB0->UDCS & UDCS_CONF) { /* SET-CONFIG detect *///驱动匹配成功主机会发送set_config 。让设备进入配置状态。添加接口,类描述符后,估计主机匹配不了驱动所以无法进入这步。
  /*emulate set config command*/
  UsbSetDevState(UsbDevStatusAddress);
  UsbEp0SetupPacket.mRequestType.Dir = UsbHost2Device;
  UsbEp0SetupPacket.mRequestType.Type = UsbTypeStandart;
  UsbEp0SetupPacket.wIndex.Word = 0;
  UsbEp0SetupPacket.wLength.Word = 0;
  UsbEp0SetupPacket.wValue.Lo = (FM3_USB0->UDCIE & UDCIE_CONFN)>>1;
  UsbEp0SetupPacket.bRequest = SET_CONFIGURATION;
  USB_SetupHandler();
  FM3_USB0->UDCS &= ~UDCS_CONF; /* CONF clear */
  }


请问添加一个接口。配置描述符和设备描述符还有其他地方 需要改修吗???因为调试了很多次。在配置状态之前,设备确实发了设备和配置描述符等给主机,让PC主机判断是否能够提供USB的Driver。

------解决方案--------------------
这段是在哪个spec里?之前确实没看到过
之前做多接口的复合设备,也试过将bDeviceClass等3个字段设置为0x00,但枚举出错
后来配置成复合设备,各功能设备都可以识别到了,除了那几个系统,在win7上也跑过可以的
  相关解决方案