如題,我的USB鼠標已經(jīng)枚舉成功了,但在枚舉過程中主機沒有獲取字符串描述符,當然獲取字符串描述符不是必須的,我想知道這個字符串描述符在枚舉階段獲不獲取是跟什么有關(guān)的呢
不獲取是和設(shè)備描述符里面最后2位字節(jié)有關(guān)系,還有和你主機是否發(fā)送獲取字符串描述符的控制請求也有關(guān)系。但是如果你枚舉成功了的話,字符串描述符是可以不進行獲取的。
又遇到問題了,雖然是枚舉成功了,可是一旦拔下這個鼠標,系統(tǒng)就死機了,也不知道什么原因
解決了,是USB口供電不足的問題,可這個字符串描述符問題還沒有解決,希望今天下午能解決這個問題
獲取設(shè)備字符串描述符的時候,一定要先獲取語言ID才可以。
是主機不發(fā)送獲取字符串描述符命令,我在設(shè)備描述符里設(shè)置了廠商ID,產(chǎn)品ID等字符串索引不為0,不知道PC為何不發(fā)獲取字符串描述符命令,O(∩_∩)O~
需要看下你的描述符,包括設(shè)備描述符以及配置描述符,還有就是你有沒有跟蹤下主機有沒有發(fā)送獲取字符串描述符的控制請求下來。
就是主機沒有發(fā)請求啊,我在設(shè)備描述符都跟它說了有字符串描述符,他還不發(fā),我估計還是某個細節(jié)問題沒注意,再看看 謝謝你們
如何監(jiān)視的發(fā)現(xiàn)主機沒有發(fā)送獲取字符的命令?
bus hound
bushound不是所有的數(shù)據(jù)包都可以抓出來的。很多時候獲取字符串是抓不到的。所以這個軟件不可信,只能參考。 建議你監(jiān)視程序,看看PC是否發(fā)出獲取語言ID的命令了。
我也遇到了,沒有獲取字符串描述符的情況,我從BUS HOUND上也沒有看到主機發(fā)送字符串的請求。 我自己通過BUS HOUND發(fā)送獲取字符串的命令后,可以獲取相應(yīng)的字符串描述,但是不能反應(yīng)到設(shè)備的信息里去。 這是怎么回事呢? 我有D12時沒有遇到這樣的情況。
BUSHOUD獲取的描述符 并不是系統(tǒng)獲取的,所以不會反應(yīng)到設(shè)備的信息中, 把下位機的速度優(yōu)化一下試試
引用:
能不能說得具體些,這個問題我也搞不清楚,謝謝!
這個問題可以參考USB協(xié)議第9章。里面有詳細說明。