CH567收到UIF_BUS_RST的問題

請問一下,我在使用CH567開發(fā)板的過程中,使用官方的例程,在程序開發(fā)的過程中,開發(fā)板經(jīng)常出現(xiàn)“USB1 Reset!”的情況出現(xiàn),例如下面這樣子的情況。偶爾重新開發(fā)板重啟就能解決、偶爾是重新編譯程序就能解決,請問出現(xiàn)這種情況的原因在哪里呢:


USB1 Device Init!

USB1 Reset!

USB1 Reset!

USB1 Reset!

USB1 Reset!

USB1 Reset!

USB1 Reset!

USB1 Reset!

USB1 Reset!

USB1 Reset!

USB1 Reset!

USB1 Reset!


源代碼:

void USB1DevIntDeal(void){

????if (R8_USB1_INT_FG & UIF_TRANSFER) {

????????//R8_UEP0_TX_CTRL1 = UEP_T_RES_NAK;

????????R8_UEP0_TX_CTRL1 = UEP_T_RES_ACK;

????????R8_UEP0_RX_CTRL1 = UEP_R_RES_ACK;

????????//R8_UEP1_TX_CTRL1 = UEP_T_RES_NAK | bUEP_AUTO_TOG;

????????R8_UEP1_TX_CTRL1 = UEP_T_RES_ACK | bUEP_AUTO_TOG;

????????R8_UEP1_RX_CTRL1 = UEP_R_RES_ACK | bUEP_AUTO_TOG;

????????R8_UEP2_TX_CTRL1 = UEP_T_RES_ACK | bUEP_AUTO_TOG;

????????R8_UEP2_RX_CTRL1 = UEP_R_RES_ACK | bUEP_AUTO_TOG;

????????R8_USB1_DEV_AD = 0;

????????DevAddr = 0;

????????R8_USB1_INT_FG = UIF_BUS_RST;

????????printf("USB1 Reset!\n");


USB枚舉階段或者USB通訊出錯、不符合協(xié)議交互邏輯、無響應(yīng)等異常情況時,通常主機(jī)會進(jìn)行USB總線復(fù)位來試圖糾正,總線復(fù)位本身只是一種總線的狀態(tài),出現(xiàn)總線復(fù)位是正當(dāng)?shù)摹?br>

如果不是在枚舉階段出現(xiàn),更多的可能是對代碼的修改導(dǎo)致通訊過程中的錯誤引起。

如果是總線上的錯誤,采用硬件抓包儀器分析會更有效。


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

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