USB_HID設(shè)備問題:通過USBHID調(diào)試助手下發(fā)數(shù)據(jù)

單片機(jī)型號(hào)為CH552

請(qǐng)問下怎么能返回下發(fā)的數(shù)據(jù)啊。是用的blob.pngHID符合設(shè)備

可以直接這樣上發(fā)數(shù)據(jù)嗎。

Ep3FLAG = 0;

for(i=0;i<64;i++)

????Ep3Buffer[i]=i; ????????

Enp3IntIn(64);

while(Ep3FLAG == 0);


然后這里不明白是什么意思

blob.png



最后再請(qǐng)問下老大,有沒有能上發(fā)單片機(jī)收到HID數(shù)據(jù)的例程啊,目前用那個(gè)HID復(fù)合設(shè)備的例程貌似下發(fā)數(shù)據(jù)不成功,不知道什么原因


第一個(gè)可以上傳;

第二個(gè)作用是PC通過端點(diǎn)4下傳的鍵鼠數(shù)據(jù),通過協(xié)議解析然后分別賦值到鍵盤和鼠標(biāo)上傳的端點(diǎn)。


第二個(gè) 我理解的是PC下發(fā)數(shù)據(jù)到端點(diǎn)4(自定義HID設(shè)備),然后判斷長(zhǎng)度,再?gòu)?fù)制到鍵盤或者鼠標(biāo)再上發(fā)到PC

為什么是從Ep0Buffer的第64字節(jié)開始呢,每次下發(fā)的只有64字節(jié)啊


然后我在端點(diǎn)4接受的那個(gè)地方串口打印調(diào)試,上位機(jī)下發(fā)數(shù)據(jù),貌似都不成功,這個(gè)打印的東西也沒出來,會(huì)不會(huì)是HID的報(bào)告描述符的問題啊


端點(diǎn)0和端點(diǎn)4定義的時(shí)候緩沖區(qū)是連在一起的,一共192字節(jié),前64是端點(diǎn)0收發(fā)緩沖區(qū),64-127是端點(diǎn)4 OUT,128-192是端點(diǎn)4 IN,具體你可以看CH554的頭文件端點(diǎn)定義。

如果PC沒有出現(xiàn)無法識(shí)別的設(shè)備,證明描述符就是OK的,有可能是你的下傳軟件的問題,你可以是其他的USB調(diào)試工具。


奧,謝謝,這個(gè)明白了。那端點(diǎn)4(自定義HID設(shè)備)要上發(fā)數(shù)據(jù),得把數(shù)據(jù)裝到Ep0Buffer[128]到Ep0Buffer[191]哈,那怎么讓端點(diǎn)4上發(fā)數(shù)據(jù)呢


圖片.png

類似于上面的端點(diǎn)3,數(shù)據(jù)放到端點(diǎn)4發(fā)送緩沖區(qū),然后設(shè)置端點(diǎn)響應(yīng)方式ACK,圖片.png。

唯一不同的是,需要在端點(diǎn)4的IN中斷中手動(dòng)翻轉(zhuǎn)圖片.png


謝謝老大解答,目前單片機(jī)上發(fā)是沒問題的,測(cè)試了連續(xù)上發(fā)的話每次上發(fā)之間加了10ms的延時(shí)。您說的手動(dòng)反轉(zhuǎn)是加入了的。也在手冊(cè)上找到這個(gè)了,端點(diǎn)4是沒有自動(dòng)翻轉(zhuǎn)的。




目前我這邊的問題是:上位機(jī)只能下發(fā)成功一次?,F(xiàn)在寫的功能是上位機(jī)下發(fā)什么,單片機(jī)就返回什么數(shù)據(jù)。

單片機(jī)上電,第一次能下發(fā)成功,且單片機(jī)回傳了數(shù)據(jù)回來。再次發(fā)送就不行了,也用串口打印測(cè)試了主循環(huán)是還在運(yùn)行的,最后刪除了測(cè)試的代碼,目前有問題的修改的代碼如下:



中斷里:

blob.png


blob.png


blob.png主函數(shù)的大循環(huán)里


blob.png

這是上電第一次能發(fā)送和接收成功的


圖片.png

收到一包數(shù)據(jù)后,被設(shè)置NAK,以后就不收數(shù)據(jù)了??梢园堰@句話去掉,或者在主函數(shù)里面等發(fā)送完一包數(shù)據(jù)后,再把端點(diǎn)4接收設(shè)置為ACK。


感謝老大,可以了。謝謝謝謝。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频