CH376如何退出低功耗睡眠狀態(tài)

昨天請(qǐng)教了下U盤存在的狀態(tài)切換,使用DISK_CONNECT,可行。 現(xiàn)在我想U(xiǎn)盤拔下,CH376進(jìn)入低功耗睡眠狀態(tài)。本來寫出這樣 weak( );//低功耗 { xWriteCH376Cmd(CMD_ENTER_SLEEP);//進(jìn)入低功耗狀態(tài) while(1) { puts("U盤已經(jīng)拔出\r\n"); delay_ms(1000); if(CH376DiskConnect()==USB_INT_SUCCESS)//說明U盤插上 { delay_ms(1000);//防止誤操作 延時(shí)1s再查詢是否有U盤 if(CH376DiskConnect()==USB_INT_SUCCESS)//說明U盤的確插上 { flag=1; //確實(shí)有U盤 置標(biāo)志位為1,跳動(dòng)U盤插入函數(shù)執(zhí)行 break; } } } } 但看說明書上寫:?jiǎn)纹瑱C(jī)向CH376寫新命令會(huì)退出睡眠狀態(tài),所以里面的查詢函數(shù)不能用,我換成下面的代碼,當(dāng)U盤插入,產(chǎn)生中斷,查詢中斷狀態(tài) week()//低功耗 { xWriteCH376Cmd(CMD_ENTER_SLEEP);//進(jìn)入低功耗狀態(tài) while(1) { if( Query376Interrupt( ) )//查詢中斷狀態(tài) 出現(xiàn)中斷返回1 if(CH376GetIntStatus( )== USB_INT_WAKE_UP) //通常情況下,CH376 芯片從低功耗狀態(tài)退出并恢復(fù)到正常工作狀態(tài)需要幾毫秒的喚醒時(shí)間, //當(dāng)完全恢復(fù)到正常工作狀態(tài)后,CH376 將產(chǎn)生 USB_INT_WAKE_UP 事件中斷。 { flag=1;//切換到正常狀態(tài) break; } } } 可是實(shí)際測(cè)試,U盤插入退出不了,不知道怎么回事

估計(jì)你沒有進(jìn)入睡眠模式,在發(fā)了睡眠命令之后,應(yīng)該去等CH376的中斷引腳是否拉低,拉低之后在去讀取中斷狀態(tài),你主程序明顯的有往CH376寫命令的操作,怎么可能回進(jìn)睡眠呢?


我的主程序就一條寫命令操作:xWriteCH376Cmd(CMD_ENTER_SLEEP); if( Query376Interrupt( ) ) 這個(gè)用來判斷 中斷引腳是否拉低的


你實(shí)際測(cè)試 1:是否可以進(jìn)入睡眠狀態(tài)? 2:U盤插入后,能否產(chǎn)生中斷?中斷狀態(tài)是什么?


好的 1;我給CH376發(fā)睡眠命令,用示波器看晶振是否有波形 2:U盤直接插入返回的中斷,與CH376在睡眠狀態(tài)產(chǎn)生的中斷是否一樣?


CMD_ENTER_SLEEP 該命令使CH376 芯片進(jìn)入低功耗睡眠掛起狀態(tài)。進(jìn)入低功耗狀態(tài)后,CH376芯片的時(shí)鐘停振,從 而節(jié)約電能,直到檢測(cè)到以下兩種情況之一才退出低功耗狀態(tài):一是檢測(cè)到USB 總線有信號(hào)(例如 USB 主機(jī)啟動(dòng)傳輸或者USB 設(shè)備插拔事件);二是單片機(jī)向CH376 芯片寫入新的命令(沒有輸入數(shù)據(jù) 的命令,例如CMD_GET_IC_VER 或CMD_ABORT_NAK 命令)。對(duì)于SPI 通訊接口方式,SCS片選有效也將 導(dǎo)致CH376退出低功耗狀態(tài),所以單片機(jī)在發(fā)出CMD_ENTER_SLEEP命令后,應(yīng)該立即使SCS 片選無效。 通常情況下,CH376芯片從低功耗狀態(tài)退出并恢復(fù)到正常工作狀態(tài)需要幾毫秒的喚醒時(shí)間,當(dāng)完 全恢復(fù)到正常工作狀態(tài)后,CH376 將產(chǎn)生USB_INT_WAKE_UP 事件中斷


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

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