程序啟動后,插上USB線到PC,程序跳入中斷,但中斷狀態(tài)是0C和0F,都是總線復位的中斷代碼,這樣正常嗎?這2個中斷的處理如何處理? 我認為一插上USB線到PC(CH375B復位后),應(yīng)該反饋USB_INT_EP0_SETUP這個中斷狀態(tài)
(1)剛連接到計算機,一定會首先產(chǎn)生上述的復位中斷 (2)復位中斷產(chǎn)生時,程序中一般要把自身的設(shè)備地址,配置值等清0 (3)復位中斷之后才會有USB_INT_EP0_SETUP中斷 具體如何處理,網(wǎng)上下載CH372EVT.ZIP,參考..\PUB\XFIRM\C目錄下的示例
if((InterruptStatus&0x03)==0x03){ //總線復位 CH375FLAGERR=0; //錯誤清0 CH375CONFLAG=0; //配置清0 mVarSetupLength=0; // CH375ACT=1; //清配置完成輸出 }
謝謝了 不過剛才一個新問題,設(shè)置工作模式為外置固件模式后返回操作狀態(tài)決然是0x08,設(shè)置為內(nèi)置固件模式后發(fā)現(xiàn)返回是成功0x51
對設(shè)置模式命令來說,0x08是不正常的返回狀態(tài)。 設(shè)置模式命令完成時間需要20Us,然后才能查詢狀態(tài)。不知道你設(shè)置模式后是否有20Us的延時
只要在你測試命令完成之后的話,不論設(shè)置的是內(nèi)置固件還是外置固件,都不必要去讀取狀態(tài)的。你只需要去設(shè)置模式就可以了。
今天調(diào)試突然都正常了,也能響應(yīng)USB_INT_EP0_SETUP了,謝謝各位支持