CH552 USB Setup包處理問題

我這邊使用switch 語句處理Setup包,標(biāo)準(zhǔn)請求UsbSetupBuf->bRequestType應(yīng)該是0x80,Vendor 的IN,OUT分別是0xC0、0x40才對,但是使用switch 的方法就是沒辦法枚舉成功,系統(tǒng)頻率是24M的,是處理速度太慢了嗎?

switch語法如下:

switch(SetReqtp) {

????case USB_REQ_TYP_STANDARD | USB_REQ_RECIP_DEVICE | USB_REQ_TYP_IN:?

????。。。。。。。。? ??

????case USB_REQ_TYP_VENDOR | USB_REQ_RECIP_DEVICE | USB_REQ_TYP_IN:

????。。。。。。。。

????case USB_REQ_TYP_VENDOR | USB_REQ_RECIP_DEVICE | USB_REQ_TYP_OUT:

????。。。。。。。。

????default :break;

}


www.findthetime.net/downloads/CH554EVT_ZIP.html

你好,可以參考一下我們EVT中的USB設(shè)備例程,具體位置位于USB/device文件夾下


不是,我意思是我這邊使用if判斷就沒問題,但是使用switch語句就有問題。用if也可以實現(xiàn),但是沒有使用switch架構(gòu)好,我這邊是打算修改為switch的。


我這邊使用dataflash即時存儲收到的端點0的數(shù)據(jù),


80 06 00 01 00 00 40 00?

00 05 0C 00 00 00 00 00?

80 06 00 01 00 00 12 00?

80 06 00 02 00 00 FF 00?

80 06 00 03 00 00 FF 00?

80 06 00 02 00 00 2F 00?

00 09 01 00 00 00 00 00?

C0 F5 00 00 00 00 07 00?

40 AA 00 00 00 00 00 00?

40 9C 11 15 22 D9 00 00?


用if語句的數(shù)據(jù)都沒有問題,switch語句的話就會卡在第二個80 06 00 02 00 00 FF 00 這里


你好 需要使用RAM來存儲端點0枚舉時通訊數(shù)據(jù),不能使用dataflash來代替RAM。


這我清楚,端點0是位于xram的0x0000地址了的,CH552沒法實時調(diào)試,我只能將接收到的Setup包數(shù)據(jù)臨時存儲到dataflash來分析的



是不是開優(yōu)化了,SWITCH在優(yōu)化級別高時可能會出錯


不是優(yōu)化問題,我目前是使用1級優(yōu)化,另外,如果使用if語句先判斷是否Vendor請求的話,會直接導(dǎo)致設(shè)備描述符無效


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

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