USB驅(qū)動(dòng)掃碼槍收不到數(shù)據(jù)

UINT8 get_int_in(UINT8 tog,UINT8 endp_int)

{

UINT8 s,t,j;

tog = tog ? 0x80 : 0x00;

issue_token(tog,( endp_int << 4 ) | DEF_USB_PID_IN);

s = wait_interrupt( );? ////這是返回的是0x20

printf("get_int_in data: s=%02x\n",(unsigned short)s);

if(s == USB_INT_SUCCESS )

? ?{


? t = RD_USB_DATA(data_buf);//?ü???????????????¤????°???8×??????ó±ê??4×???

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;

}


查詢手冊(cè),發(fā)現(xiàn)數(shù)這個(gè)操作是失敗的。也就是issue_token是有問題的,請(qǐng)問如上的代碼,問題出在哪里呢?

多謝

image.png

補(bǔ)充下,掃碼槍device的配置和cfg如下:

Get_Dev_Descr:

12 01 10 01 00 00 00 08 da 09 0a c1 06 94 01 02 00 01?

Get_Cfg_Descr1:

09 02 22 00 01 01 00 a0 32?



Get_Cfg_Descr2:

09 02 22 00 01 01 00 a0 32 09 04 00 00 01 03 01 02 00 09 21 10 01 00 01 22 48 00 07 05 81 03 08 00 0a?



糾正下s = wait_interrupt( );??////這是返回的是0x2a

?返回值是0x2a


image.png


如下是用 bus hound抓的數(shù)據(jù):

但是我沒法對(duì)應(yīng),不知道我的初始化代碼哪里有問題。

image.png


icon_jpg.gif屏幕截圖.jpg

補(bǔ)充下bus hound抓的數(shù)據(jù)


有兩個(gè)問題問一下,1:你設(shè)置了NAK重試嗎?2:5#那張圖中cfg 14是你設(shè)置配置的值?


1:? #defineCMD20_SET_RETRY0x0B// 設(shè)置重試次數(shù)為11次

xWriteCH376Cmd( CMD20_SET_RETRY );

? ? ? 如果設(shè)置為無(wú)限重試,也是收不到數(shù)據(jù)的。

2: cfg配置是 set_config的返回值,為14表示INT_SUCCESS#defineUSB_INT_SUCCESS0x14

? ?s = set_config( Device_Atti.Cfg_value );

? ?printf(" cfg %02x \n",(UINT16)s);



補(bǔ)充一下配置和返回值

2:cfg配置是 set_config的返回值,為14表示INT_SUCCESS#defineUSB_INT_SUCCESS0x14

? ?s = set_config( Device_Atti.Cfg_value );

? ?printf(" Device_Atti.Cfg_value: %02x, ret %02x\n", Device_Atti.Cfg_value,(UINT16)s);

打印值如下:?Device_Atti.Cfg_value: 01, ret 14



不要沉啊,請(qǐng)問誰(shuí)遇到過同樣的問題么


我也遇到了同樣的問題


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

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