wildluo
驱动牛犊
驱动牛犊
  • 注册日期2003-07-10
  • 最后登录2003-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1478回复:6

d12在枚举时收到的第一个SETUP包的数据内容是什么

楼主#
更多 发布于:2003-07-30 22:23
枚举时收到的第一个SETUP包,内容是什么,有多长。
我收到的结果如下:
ControlData.DeviceRequest.bmRequestType=80
ControlData.DeviceRequest.bRequest=6
ControlData.DeviceRequest.wValue=0
ControlData.DeviceRequest.wIndex=1
ControlData.DeviceRequest.wLength=0
这个肯定有错,因为其中的wValue值为0,不能进入chap_9.c中的get_descriptor()函数。
帮帮我,谢谢。
wildluo
驱动牛犊
驱动牛犊
  • 注册日期2003-07-10
  • 最后登录2003-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-31 20:55
设备描述符结构(USB_DEVICE_DESCRIPTOR)有18个字节,而端点0最大信息包不能超过16,如何将设备描述符发回主机。
谢谢。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-31 17:33
你不要用那些东西了,直接写8就行了,主要该的东西就在chap9里面/
wildluo
驱动牛犊
驱动牛犊
  • 注册日期2003-07-10
  • 最后登录2003-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-31 16:18
非常感谢,我的USB芯片是8位PDIUSBD12,而MCU是16位的5402DSP
它的编译器将unsigned char数据类型都当成16位。因此,sizeof(USB_DEVICE_DESCRIPTOR)的结果是5,读SETUP包时我只读到了5个字节。因为这个原因,固件程序的好多地方都得修改。好麻烦呀。
感谢各位
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-30 22:54
参考如下贴子中的内容:
http://www.driverdevelop.com/forum/html_34254.html?1059576198
http://www.driverdevelop.com/forum/viewthread.php?tid=34050
blue_wind
驱动中牛
驱动中牛
  • 注册日期2002-11-24
  • 最后登录2006-11-30
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-30 22:43
wValue = 0x0100
wIndex = 0x0000
wLength= 0x0040
接受到的16位数要swap一下
好东西大家共享,没必要做从复的劳动! 冒着微软的炮火前进!前进!前进!进!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-30 22:38
每个setup包都是8个字节,第一个包get_descriptor的内容是:80 06 00 01 00 00 40 00
游客

返回顶部