STM32 USB 掃碼槍問(wèn)題

最近在做STM32掃碼槍的東西,用的是CH376,讀取U盤、鼠標(biāo)都沒(méi)問(wèn)題,現(xiàn)在連上掃碼槍獲取不到設(shè)備描述符,但是配置描述符能獲取,而且Set idle success?Set idle success,不知道哪里出了問(wèn)題。還有掃碼槍掃到的數(shù)據(jù)應(yīng)該怎樣讀?。?/p>

",現(xiàn)在連上掃碼槍獲取不到設(shè)備描述符",試下把設(shè)置地址、總線復(fù)位刪掉,能否獲???掃碼槍的數(shù)據(jù)按照類似鍵盤的方式獲取,對(duì)掃碼槍上傳中斷端點(diǎn)不斷發(fā)IN包。


? ? ? ? ? ? ? ? ? ? ? ? ? ?

",現(xiàn)在連上掃碼槍獲取不到設(shè)備描述符",試下把設(shè)置地址、總線復(fù)位刪掉,能否獲取?掃碼槍的數(shù)據(jù)按照類似鍵盤的方式獲取,對(duì)掃碼槍上傳中斷端點(diǎn)不斷發(fā)IN包。

? ? ? ? ? ? ? ? ? ? ? ?設(shè)置地址是在獲取設(shè)備描述符之后,應(yīng)該不影響。注掉復(fù)位后連配置描述符也獲取不到了


“獲取不到設(shè)備描述符”返回什么值?獲取描述符使用的控制傳輸命令還是GET_DESCR(0X46)命令?


? ? ? ? ? ? ? ? ? ? ? ? ? ?

“獲取不到設(shè)備描述符”返回什么值?獲取描述符使用的控制傳輸命令還是GET_DESCR(0X46)命令?

? ? ? ? ? ? ? ? ? ? ? ?

uint8_t Get_Dev_Descr(void)

{

? ?uint8_t descr_len;

uint8_t *p = data_buf;

send_mode = 0x00;


WR_USB_DATA(8,(void*)SetupGetDevDescr);


issue_token(send_mode,( 0 << 4 ) | DEF_USB_PID_SETUP);?

status = wait_interrupt();

if( status == USB_INT_SUCCESS ) ? ? ? ? ? ? ?

{

receive_mode = 0x80;

}

else?

{

? ?return(0);

}


issue_token(receive_mode,( 0 << 4 ) | DEF_USB_PID_IN);?

status = wait_interrupt();????????????//這里返回0x2E

if( status == USB_INT_SUCCESS )?

descr_len = data_buf[0] - RD_USB_DATA(data_buf);

while( descr_len > 0 )

{

receive_mode ^= 0x80;

p += 0x08;

issue_token(receive_mode,( 0 << 4 ) | DEF_USB_PID_IN);?

status = wait_interrupt();

if( status == USB_INT_SUCCESS )?

{

descr_len -= RD_USB_DATA(p);

}

else?

{

? ?return(0);

}

}

}

else?

{

? ?return(0);

}

send_mode = 0x40;

WR_USB_DATA(0,(void*)SetupGetDevDescr);

issue_token(send_mode,( 0 << 4 ) | DEF_USB_PID_OUT);?

status = wait_interrupt();

if( status == USB_INT_SUCCESS )

{

return(1);

}

else?

{

? ?return(0);

}

}



返回值0x2E不算通訊異常,只是設(shè)備返回了一個(gè)STALL,協(xié)議上說(shuō)可能為一個(gè)不支持的命令,不過(guò)在這里我覺(jué)得可能是設(shè)備忙暫時(shí)未響應(yīng),可以嘗試重發(fā)。


? ? ? ? ? ? ? ? ? ? ? ? ? ?

返回值0x2E不算通訊異常,只是設(shè)備返回了一個(gè)STALL,協(xié)議上說(shuō)可能為一個(gè)不支持的命令,不過(guò)在這里我覺(jué)得可能是設(shè)備忙暫時(shí)未響應(yīng),可以嘗試重發(fā)。

? ? ? ? ? ? ? ? ? ? ? ?現(xiàn)在發(fā)現(xiàn),第一次連接設(shè)備,獲取不到設(shè)備描述符,拔了重連就可以


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

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