sam
sam
驱动牛犊
驱动牛犊
  • 注册日期2001-06-18
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2240回复:9

USB的配置问题...

楼主#
更多 发布于:2001-08-03 14:48
在选择配置前,要分两次取出配置。
在我第一次取得配置描述符的时候,得到了下面的东西:

Configuration descriptor:
wTotalLength:       0x0019
bNumInterfaces:       0x01
bConfigurationValue:  0x01
iConfiguration:       0x04
bmAttributes:         0x80
MaxPower:             0x32

接下来的第二次取配置描述符却完全取不出来,总是返回NULL
请那位仁兄帮帮忙,看看是啥问题。


--------------------万分感谢----------------------
[sam 编辑于 2001-08-03 18:59]
[sam 编辑于 2001-08-03 17:21]
sam
sam
sam
驱动牛犊
驱动牛犊
  • 注册日期2001-06-18
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-04 09:48
苦恼啊,苦恼
sam
dallas
驱动牛犊
驱动牛犊
  • 注册日期2001-07-28
  • 最后登录2003-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-08-04 11:25
选择配置也只需要读一次配置描述表就可以了,然后根据所读到的配置描述表来查找接口.你怎么会需要读两次那?
下位的firmware会不会有问题?我认为极有可能是firmware的问题
sam
sam
驱动牛犊
驱动牛犊
  • 注册日期2001-06-18
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-08-04 12:01
我指的是取出完整的描述符需要两次
一次取得总的空间长度,第二次取出完整的描述符
我已经把总长度取到了,可是取不出完整的。


-----------------热啊热-------------------
sam
Buddha
驱动老牛
驱动老牛
  • 注册日期2001-04-29
  • 最后登录2013-05-18
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望17点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-08-06 10:48

第二次的缓冲区开的足够大么?
<table style="filter: glow(color=sky blue, strength=10)"> <font color=white> 猫生病了, 老鼠大声朗诵诗集, 并修剪盆花. 猫生病了, 老鼠慢慢刷牙洗脸, 并打扫房间. 猫生病了, 老鼠倚在窗边欣赏夜色, 并对流星许愿. 猫生病了, 老鼠也病了, 它说:"我还是习惯那种时时紧张, 处处小心, 夜夜逃亡的生活." 午夜, 我听到老鼠在叹息, 且不再读诗了. </font></table>
sam
sam
驱动牛犊
驱动牛犊
  • 注册日期2001-06-18
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-08-06 13:26
大!够大了
总长度还加了16个字节呢
sam
fanwei7
驱动牛犊
驱动牛犊
  • 注册日期2001-06-26
  • 最后登录2002-03-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-08-06 14:43
个人意见:第二次你重复第一次的操作,观察结果如何。如果返回的还是NULL,估计当你第一次操作完毕后,所有的配置丢失了。
共享的资源才能更快的提高
sam
sam
驱动牛犊
驱动牛犊
  • 注册日期2001-06-18
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-08-06 15:01
既然我已经知道总长度了,是不是可以一次搞定,
就是第一次分配空间时就用描述符总长度,得到的
是不是应该,可能,大概是完整的描述符?
sam
Buddha
驱动老牛
驱动老牛
  • 注册日期2001-04-29
  • 最后登录2013-05-18
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望17点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-08-06 16:33

理论上可以的,但是一般都不这么用

我看你还是应该好好跟踪一下,找出原因来
<table style="filter: glow(color=sky blue, strength=10)"> <font color=white> 猫生病了, 老鼠大声朗诵诗集, 并修剪盆花. 猫生病了, 老鼠慢慢刷牙洗脸, 并打扫房间. 猫生病了, 老鼠倚在窗边欣赏夜色, 并对流星许愿. 猫生病了, 老鼠也病了, 它说:"我还是习惯那种时时紧张, 处处小心, 夜夜逃亡的生活." 午夜, 我听到老鼠在叹息, 且不再读诗了. </font></table>
llbird
驱动牛犊
驱动牛犊
  • 注册日期2001-06-19
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-08-06 17:04
    我也遇到类似的问题,
USBD_ParseConfigurationDescriptorEx(pdx->pcd, pdx->pcd,
0, 1, -1, -1, -1);

之后,
ped = (PUSB_ENDPOINT_DESCRIPTOR) USBD_ParseDescriptors(pcd,
pcd->wTotalLength, ped,  USB_ENDPOINT_DESCRIPTOR_TYPE);    

    ped取出来的似乎是对的,
可是下一步,
UsbBuildSelectInterfaceRequest(urb, (USHORT) size, pdx->hconfig, 0, 1);
    取出来的urb->UrbSelectInterface.Interface.Pipes[0].EndpointAddress等内容都为零。
    请高手指点!
    
(我是用Walter Oney的例子修改的)
^_^
游客

返回顶部