USB驅動掃碼槍收不到數據

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;

}


查詢手冊,發(fā)現數這個操作是失敗的。也就是issue_token是有問題的,請問如上的代碼,問題出在哪里呢?

多謝

image.png

補充下,掃碼槍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抓的數據:

但是我沒法對應,不知道我的初始化代碼哪里有問題。

image.png


icon_jpg.gif屏幕截圖.jpg

補充下bus hound抓的數據


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


1:? #defineCMD20_SET_RETRY0x0B// 設置重試次數為11次

xWriteCH376Cmd( CMD20_SET_RETRY );

? ? ? 如果設置為無限重試,也是收不到數據的。

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

? ?s = set_config( Device_Atti.Cfg_value );

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



補充一下配置和返回值

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



不要沉啊,請問誰遇到過同樣的問題么


我也遇到了同樣的問題


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

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