如题,我的USB鼠标已经枚举成功了,但在枚举过程中主机没有获取字符串描述符,当然获取字符串描述符不是必须的,我想知道这个字符串描述符在枚举阶段获不获取是跟什么有关的呢
不获取是和设备描述符里面最后2位字节有关系,还有和你主机是否发送获取字符串描述符的控制请求也有关系。但是如果你枚举成功了的话,字符串描述符是可以不进行获取的。
又遇到问题了,虽然是枚举成功了,可是一旦拔下这个鼠标,系统就死机了,也不知道什么原因
解决了,是USB口供电不足的问题,可这个字符串描述符问题还没有解决,希望今天下午能解决这个问题
获取设备字符串描述符的时候,一定要先获取语言ID才可以。
是主机不发送获取字符串描述符命令,我在设备描述符里设置了厂商ID,产品ID等字符串索引不为0,不知道PC为何不发获取字符串描述符命令,O(∩_∩)O~
需要看下你的描述符,包括设备描述符以及配置描述符,还有就是你有没有跟踪下主机有没有发送获取字符串描述符的控制请求下来。
就是主机没有发请求啊,我在设备描述符都跟它说了有字符串描述符,他还不发,我估计还是某个细节问题没注意,再看看 谢谢你们
如何监视的发现主机没有发送获取字符的命令?
bus hound
bushound不是所有的数据包都可以抓出来的。很多时候获取字符串是抓不到的。所以这个软件不可信,只能参考。 建议你监视程序,看看PC是否发出获取语言ID的命令了。
我也遇到了,没有获取字符串描述符的情况,我从BUS HOUND上也没有看到主机发送字符串的请求。 我自己通过BUS HOUND发送获取字符串的命令后,可以获取相应的字符串描述,但是不能反应到设备的信息里去。 这是怎么回事呢? 我有D12时没有遇到这样的情况。
BUSHOUD获取的描述符 并不是系统获取的,所以不会反应到设备的信息中, 把下位机的速度优化一下试试
引用:
能不能说得具体些,这个问题我也搞不清楚,谢谢!
这个问题可以参考USB协议第9章。里面有详细说明。