求教ch582m芯片,winusb驱动的wcid设备为什么电脑不能识别

icon_rar.gifMain.zip

---- 用的是ch582M芯片,usb-设备-ComPoundDev官方例程,其中接口0为键盘,接口1为鼠标,想再加一个接口2为WCID设备,但是增加了相关的描述符后,电脑成功获取0xee的系统统描述符,在电脑注册表中对应的位置也出现了osvc值为01 17,但是电脑在获取扩展兼容ID描述符的时候,只获取了前16字节头部内容,没有继续获取完整的40字节。不知道是何原因。

---- 整个项目只修改过main.c文件,附件是修改后的main.c的压缩文件,可以直接复刻,求各位给小弟指点!!!




image.png

注册表内osvc数值为01 17



image.png

设备管理器显示无法识别


同样的描述符在stm32f103中就可以实现,而ch582却不可以


您好,您可以将ST的参考工程和当前582的移植问题代码,邮件发送到zhaiyw@wch.cn,定位问题后给您邮件回复。


感谢老哥的代码,其实直接在厂商请求的判断请求号为0x17的后面加这段代码就行了,这是修改后的代码

icon_rar.gif2233.zip

????????????????????if(SetupReqLen?>?len)
????????????????????????SetupReqLen?=?len;?//实际需上传总长度
????????????????????len?=?(SetupReqLen?>=?DevEP0SIZE)???DevEP0SIZE?:?SetupReqLen;
????????????????????memcpy(pEP0_DataBuf,?pDescr,?len);
????????????????????pDescr?+=?len;

image.pngimage.png


@極光 请问这代码是咋跑起来的():

image.png


@Antecer?这个我也没搞懂,这段不是我写的,我只是在楼主的代码上修改而已,在我自己的代码中只判断bRequestType,bRequest,wIndex这三个值


感谢老哥让我了解了什么是WINUSB,正好我也有个需求不能安装驱动,我现在想使用MFC编写一个程序控制如上main.c生成的这个USB设备。发现无法打开,操作失败,在函数SetupDiEnumDeviceInterfaces处返回了FALSE,

程序我是按照vc2013 开发 winusb 简单测试程序 基于 nu_bridge_wowocpp的博客-CSDN博客处修改的,

能否提供一个简单例程可以用于操作WINUSB设备的代码哈?

请老师指导哈,非常感谢。


只有登录才能回复,可以选择微信账号登录