CH376連接掃描槍設(shè)備

我使用CH376連接掃描槍,代碼是通過修改論壇提供的“376操作鼠標(biāo)鍵盤”例程得到的。 現(xiàn)在調(diào)試的枚舉已經(jīng)通過(其中各個步驟均通過,掃描槍也進入了工作狀態(tài)),但使用CH37X_Get_int_in獲取數(shù)據(jù)一直獲取不到,CH37X_Get_int_in()里的代碼如下: uint8_t CH37X_Get_int_in(uint8_t tog, uint8_t endp_int) { uint8_t s; tog = tog ? 0x80 : 0x00; CH37X_IssueTkn(0x80, (0 << 4) | DEF_USB_PID_IN); s = CH37X_Wait_inter(); if(s == USB_INT_SUCCESS) { CH37X_RD_USBData(data_buf); //鍵盤中斷端點數(shù)據(jù)長度一般為8字節(jié),鼠標(biāo)為4字節(jié) /*for(j = 0; j != t; j ++) printf("%02x ",(unsigned short)data_buf[j]);*/ if( endp_int == Device_Atti.Device[0].Device_endp) Device_Atti.Device[0].tog = Device_Atti.Device[0].tog ? FALSE : TRUE; else Device_Atti.Device[1].tog = Device_Atti.Device[1].tog ? FALSE : TRUE; } return s; } 其中s = CH37X_Wait_inter();在有掃描數(shù)據(jù)和沒掃描數(shù)據(jù)均返回錯誤代碼0x28;

我應(yīng)該如何操作才能正確取到掃描槍數(shù)據(jù)?

s == USB_INT_SUCCESS 這個里面“S”的狀態(tài)是多少?還有確認你的ENDP_INIT這個變量是否正確。


s == USB_INT_SUCCESS 這個里面的"S"的狀態(tài)是0x28, ENDP_INIT(端點地址)里的變量值是0x03,端點地址里的值我不知道是否正確的,我在設(shè)置地址的時候不管設(shè)置為0x05還是0x03,ENDP_INIT(端點地址)里的變量值都是0x03!


端點號是需要你從配置描述符里面的端點描述符來獲取的,將配置描述符貼出來看下你的端點號是否正確。


端點地址改變不了?不可能,除非你的編譯器形參穿不進去。你先確定的掃描槍上傳端點到底是什么,然后再往那個端點讀數(shù)據(jù)


問題已經(jīng)得到解決,確實是端點號與配置描述符里的不一樣, 不一樣的原因是因為我使用的是32位MCU,在進行端點描述結(jié)構(gòu)體賦值時出現(xiàn)錯位,導(dǎo)致讀取來的出現(xiàn)端點號出現(xiàn)錯誤! 多謝各位大俠相助


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

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