[求助]CH375B做主機操作自定義USB設備的問題

枚舉獲取描述符能成功,但讀入數(shù)據(jù)時,中斷狀態(tài)一直返回0x46,不知道是什么原因,望高手指點。 下面調試打印信息:

設置主機模式………… 設置主機模式成功………… USB 已連接………… 設置主機模式………… 設置主機模式成功………… 設置主機模式………… 設置主機模式成功………… 設備復位成功………… 設備描述符: 18 設備描述符: 1 設備描述符: 16 設備描述符: 1 設備描述符: 0 設備描述符: 0 設備描述符: 0 設備描述符: 64 設備描述符: 90 設備描述符: 89 設備描述? 1 設備描述符: 0 設備描述符: 0 設備描述符: 0 設備描述符: 0 設備描述符: 0 設備描述符: 0 設備描述符: 1 config 配妹枋齜?9 配置描述符:2 配置描述符:25 配置描述符:0 配置描述符:1 配置描述符:1 配置描述符:0 配置描述符:160 配置描述符:250 config 2 配置描述符二:9 配置描述符二:2 配置描述符二:25 配置描述符二:0 配置描述符二:1 配置描述符二:1 配置描述符二? 配置描述符二:160 配置描述符二:250 配置描述符二:9 配置描述符二:4 配置描述符二:0 配置描述符二:0 配置描述符二:1 配妹枋齜???55 配置描述符二:0 配置描述符二:0 配置描述符二:0 配置描述符二:7 配置描述符二:5 配置描述符二:129 配置描述符?? 配置描述符二:8 配置描述符二:0 配置描述符二:10 set idle set report set report OK 中斷狀態(tài)寄存器40 中斷狀態(tài)寄存器46 中斷狀態(tài)寄存器46 中斷狀態(tài)寄存器46

上面有點寫錯了,回復的 46是十進制,應該是0X2E,我看手冊意思是設備返回STALL


好像沒有獲取報表描述符。對以HID類報表描述符是必須要要獲取的。


報表描述符獲取失敗,這個是處定義的USB設備


你所謂的外定義的設備是什么意思?標準的HID類設備都也必須有報表類描述符。


我 捕獲 USB設備與電腦的通信數(shù)據(jù)。沒有報表描述符。CH375 下面是電腦與USB設備的信息: Device Phase Data Description Cmd.Phase.Ofs(rep) ------ ----- ------------------------ ---------------- ------------------ 16 IN 1.1.0 16.0 CTL a3 00 00 00 02 00 04 00 CLASS 2.1.0(2) 16.0 IN 01 01 01 00 .... 2.2.0 16.0 CTL 23 01 10 00 02 00 00 00 CLASS 4.1.0 16.0 CTL a3 00 00 00 01 00 04 00 CLASS 5.1.0 16.0 IN 00 01 00 00 .... 5.2.0 16.0 CTL a3 00 00 00 02 00 04 00 CLASS 6.1.0(2) 16.0 IN 01 01 00 00 .... 6.2.0 16.0 CTL 23 03 04 00 02 00 00 00 CLASS 8.1.0 16 IN 9.1.0 16.0 CTL a3 00 00 00 02 00 04 00 CLASS 10.1.0 16.0 IN 03 01 10 00 .... 10.2.0 16.0 CTL 23 01 14 00 02 00 00 00 CLASS 11.1.0 16.0 CTL a3 00 00 00 02 00 04 00 CLASS 12.1.0(2) 16.0 IN 03 01 00 00 .... 12.2.0 16.0 CTL 23 03 04 00 02 00 00 00 CLASS 14.1.0 16 IN 15.1.0 16.0 CTL a3 00 00 00 02 00 04 00 CLASS 16.1.0 16.0 IN 03 01 10 00 .... 16.2.0 16.0 CTL 23 01 14 00 02 00 00 00 CLASS 17.1.0 16.0 CTL 80 06 00 02 00 00 ff 00 GET DESCRIPTOR 18.1.0 16.0 IN 09 02 19 00 01 01 00 a0 ........ 18.2.0 fa 09 04 00 00 01 ff 00 ........ 18.2.8 00 00 07 05 81 03 08 00 ........ 18.2.16 0a . 18.2.24 16.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 19.1.0 16.0 IN 12 01 10 01 00 00 00 40 .......@ 19.2.0 5a 59 01 00 00 00 00 00 ZY...... 19.2.8 00 01 .. 19.2.16 16.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 20.1.0 16.0 IN 09 02 19 00 01 01 00 a0 ........ 20.2.0 fa . 20.2.8 16.0 CTL 80 06 00 02 00 00 19 00 GET DESCRIPTOR 21.1.0 16.0 IN 09 02 19 00 01 01 00 a0 ........ 21.2.0 fa 09 04 00 00 01 ff 00 ........ 21.2.8 00 00 07 05 81 03 08 00 ........ 21.2.16 0a . 21.2.24 16.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 22.1.0 16.1 IN 54 81 4c 01 0f 03 ff 00 T.L..... 23.1.0 21 IN 00 00 01 00 01 00 00 00 ........ 24.1.0 00 00 00 00 c0 14 00 00 ........ 24.1.8 aa 30 00 00 0f 03 4c 01 .0....L. 24.1.16 16.1 IN 54 82 4c 01 0f 03 ff 00 T.L..... 25.1.0 21 IN 00 00 01 00 00 00 00 00 ........ 26.1.0 00 00 00 00 c0 14 00 00 ........ 26.1.8 aa 30 00 00 0f 03 4c 01 .0....L. 26.1.16


那你這個設備接到計算機上面需要安裝驅動嗎?按照你給的圖只需要枚舉下之后就可以讀取數(shù)據(jù)了。


需要安裝驅動才可以用的


那你直接獲取設備描述符和配置描述符之后就獲取數(shù)據(jù)就可以了,沒必要再做其他的請求。還有你的端點號是0X81。


按上面說的操作,第一次返回中斷狀為0X20,原來第一次返回0X28。后面就都是0X2E了,第一次返回出錯,后面就掛起了應該


端點號是0X81。是什么意思?


void get_int_in() { endp6_mode=0x80; toggle_recv(); issue_token(( endp_int << 4 ) | DEF_USB_PID_IN);//status=wait_interrupt(); }

這樣讓所有端點都進入工作狀態(tài),有沒有問題呀


endp_int這個值應該為0X81。


這個0X81,D7為1是表示輸入吧,低四位為端點號,我現(xiàn)在endp_int是1,即使是0X81,左移4位也是1了


有什么情況會使端點不工作呢?


按照你在計算機上面的操作。這樣應該就可以了。


只有登錄才能回復,可以選擇微信賬號登錄

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