做过wince下USB驱动请进

spirit_only   2009-10-27 08:19 楼主
做过wince下USB驱动请进,我现在做的是关于USB协议层驱动的编写,现在可以读出:设备描述符、配置描述符、接口描述符、字符串描述符。
但是却都不到端点描述符。
如何设置断点属性呢?比如说:那个端点配置输入,那个端点配置输出,还有配置成中断方式、批量传输方式?

如果有人做过,能否发一份给我?感激不尽!
我的邮箱:lh806732@163.com

回复评论 (74)

你是做HOST驱动还是DEVICE驱动?
如果是DEVICE驱动,没有获取端点描述符可能是因为你所走的协议问题,或者是之前的描述符不对,比如说在接口描述符里要告诉HOST有几个端点。
点赞  2009-10-27 08:37
我做的是HOST驱动,主要是要接收示波器发送过来的数据。
现在端点都读不到。
我在接口描述符里面看到bNumEndpoint一直是0。
读取接口描述符我用了lpGetDescriptor却不行。不知道是不是跟第六个参数有关。
(*pUSBD->usbFuncs->lpGetDescriptor)(pUSBD->hUSBDevice,
                                        NULL,
                                        NULL,
                                        USB_SHORT_TRANSFER_OK,
                                        *pBufIn,//USB_ENDPOINT_DESCRIPTOR_TYPE,
                                        0,
                                        0,// 0或语言ID
                                        sizeof(USB_ENDPOINT_DESCRIPTOR),
                                        &EndpointDescriptor
                                        );

读取端点描述符的时候读出来的却是配置描述符:
(*pUSBD->usbFuncs->lpGetDescriptor)(pUSBD->hUSBDevice,
                                        NULL,
                                        NULL,
                                        USB_SHORT_TRANSFER_OK,
                                        *pBufIn,//USB_STRING_DESCRIPTOR_TYPE,
                                        0,
                                        0,// 0或语言ID
                                        sizeof(USB_CONFIGURATION_DESCRIPTOR),
                                        &CfgDescriptor
                                        );
点赞  2009-10-27 12:45
帮顶。。。。。

点赞  2009-10-27 13:28
HOST的没做过,不了解,你找下BSP中的其它USB HOST参考一下吧。
点赞  2009-10-27 14:01
DEVICE驱动比做HOST驱动流行?
点赞  2009-10-27 14:12
引用: 引用 4 楼 veabol 的回复:
HOST的没做过,不了解,你找下BSP中的其它USB HOST参考一下吧。


你做过DEVICE的驱动,能否给我参考一下?

现在很迷茫了对这个HOST驱动。
点赞  2009-10-27 14:24
不知道为什么lpInterfaces(接口描述符指针)都是有效的,如下:
    pInterface = pUSBD->lpDeviceInfo->lpActiveConfig->lpInterfaces;
    if (NULL == pInterface)
    {
        RETAILMSG(USBOSC_ERR_MSG, (TEXT("OSC: pInterface is NULL !\r\n")));
    }
这里没有打印出错误信息。


而到下一级lpEndpoints(端点描述符指针)却是空的,如下:

    pEndpoint = pUSBD->lpDeviceInfo->lpActiveConfig->lpInterfaces->lpEndpoints;
    if (NULL == pEndpoint)
    {
        RETAILMSG(USBOSC_ERR_MSG, (TEXT("OSC: pEndpoint  is NULL !\r\n")));
    }
这里就打印出了错误信息。
点赞  2009-10-27 14:35
顶一下啊
点赞  2009-10-27 19:16
mark~~~
点赞  2009-10-28 09:10
你的枚举成功了么,你现在估计还卡在枚举的问题上啊,在枚举的时候,反复发Get_Device_Descriptor是协议规定的,而且会发送好几次,最后才得到包长等数据,然后获得端口数据,然后设置地址。
点赞  2009-10-28 15:34
现在所有的借口、端点描述符都可以读到了,接下来还需要做些什么动作吗?
比如说要怎么样来传输数据呢?

高手指点,小弟第一次做。
点赞  2009-10-28 17:53
来学习了啊  。。。
点赞  2009-10-29 12:27
up
点赞  2009-10-29 12:34
现在碰到一个问题:驱动里面传给应用的pBufOut在驱动里面可以正常把接口描述符打印出来,而应用里面通过pBufOut打印出来的接口描述符完全是错误的?几个同事都看了没发现什么问题!


公司不允许贴代码出来,没有权限....................要不然我会把代码贴出来。

高手不如赐教!
点赞  2009-10-29 12:54
up
点赞  2009-10-29 14:24
公司不允许贴代码出来,没有权限....................要不然我会把代码贴出来?HOST做过,可是你说的真的不是很明白啊,你的代码也不好说啊

点赞  2009-10-29 14:28
來學習了····
点赞  2009-10-29 14:55
LV  GUCCI  香奈儿一比一包包 批发零售!
广州市天龙皮具厂成立于2002年。是一家有多年专业设计、生产、经营高档皮具系列产品的企业。主营LV,GUCCI,CHANEL,世界一线畅销品牌皮具产品。款式多,更新快,出货准时。质量保证,价格实惠,免费代发货至世界各地,欢迎世界各地客商及爱包包人士前来选购。 三个起批可以混批!
网址:http://www.aimosi.com
联系电话:15920907201
MSN:aimosi@live.cn
客服QQ:775035679      957840212  
点赞  2009-10-29 17:26
点赞  2009-10-29 17:36
1234下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复