[数据传输] 关于复合设备(hid&自定义设备)的描述符问题

[复制链接]
 楼主| 亦易 发表于 2017-9-4 09:27 | 显示全部楼层 |阅读模式
我的设备实现HID&自定义设备的复合,在枚举阶段,bushoud抓取数据,提示“bad config desc",请问这个是描述符的问题还是没装驱动的问题?
zhs2007 发表于 2017-9-4 13:09 | 显示全部楼层
完整的配置描述符贴出来看看
 楼主| 亦易 发表于 2017-9-4 13:40 | 显示全部楼层
zhs2007 发表于 2017-9-4 13:09
完整的配置描述符贴出来看看

配置描述符如下:
const configdesc CONFIGDESC =
{
{
//configuration descriptor
  0x09,
  0x02,
  0x4000,
  0x02,
  0x01,
  0x00,
  0x80,
  0x64
},
{
//interface0 descriptor
0x09,
0x04,
0x00,
0x00,
0x02,
0x03,
0x00,
0x00,
0x00
},
{
//hid_descriptor
0x09,
0x21,
0x1001,
0x00,
0x01,
0x02,
REPORT_DESP_LENGTH
},
{
//IN EP2
0x07,
0x05,
0x82,
0x03,
0x4000,
1
},
{
//OUT EP2
0x07,
0x05,
0x02,
0x03,
0x4000,
1
},
{
//interface2 descriptor
0x09,
0x04,
0x01,
0x00,
0x02,
0xff,
0x00,
0x00,
0x00
},
{
//IN EP1
0x07,
0x05,
0x81,
0x02,
0x4000,
1
},
{
//OUT EP1
0x07,
0x05,
0x01,
0x02,
0x4000,
1
}
}
zhs2007 发表于 2017-9-4 14:21 | 显示全部楼层
你用的是大端还是小端?能否转成字节数组?
宇容创行 发表于 2017-9-4 14:25 | 显示全部楼层
描述符的问题
 楼主| 亦易 发表于 2017-9-4 14:33 | 显示全部楼层
zhs2007 发表于 2017-9-4 14:21
你用的是大端还是小端?能否转成字节数组?

大端,单个hid是可以的,只是和自定义的设备复合时会出现问题
 楼主| 亦易 发表于 2017-9-4 14:34 | 显示全部楼层

请指点下呗
zhs2007 发表于 2017-9-4 15:00 | 显示全部楼层
从内容上看没发现明显问题。
建议你检查一下结构体定义和对齐方式,检查一下程序中生成的这个结构体总大小是否如预期。
最好能将整个配置描述符逐字节打印出来看看,或者用抓包工具抓一下发到总线上的描述符内容是否如预期。
 楼主| 亦易 发表于 2017-9-4 15:14 | 显示全部楼层
zhs2007 发表于 2017-9-4 15:00
从内容上看没发现明显问题。
建议你检查一下结构体定义和对齐方式,检查一下程序中生成的这个结构体总大小 ...

首先谢谢您
通过用bushoud抓取数据与程式中设定的描述符对比,未发现差异;
以您的经验看,这是否与我未安装驱动有关,
还是说在枚举过程中,是否安装驱动对其无影响
zhs2007 发表于 2017-9-4 16:52 | 显示全部楼层
bushound抓取的数据可以发上来看下吗?
这个描述符总长为64字节,如果EP0最大包长度设置为64字节,那么在发完这个包后,有没有发一个0字节包?
bushound报错的情况下,PC能够正确识别出设备吗?
zhs2007 发表于 2017-9-4 16:54 | 显示全部楼层
我认为bushound报错应该与设备是否安装驱动无关!
WoodData 发表于 2017-9-5 08:30 | 显示全部楼层
第2个接口描述符下面好像没有类描述符,可能是这个原因吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

1

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部