ch32v305使用WFI后USB設(shè)備不正常

我嘗試使用CH32V305做一個DAP調(diào)試器。USB設(shè)備這一塊已經(jīng)基本調(diào)試好,插上后可以認出CDC與DAP設(shè)備了。

但我在主程序里面這樣寫:

??? while(1){WFI();}

則USB設(shè)備就枚舉失敗了。用一個空的while(1),就沒任何問題。

全部差異只有這一個WFI()了。調(diào)試記錄可以看到有USB中斷產(chǎn)生,但獲取描述符這一步失敗。

您好,調(diào)用WFI會進入低功耗模式,直接放在while循環(huán)中會不停的進入睡眠模式,你可以具體說一下你的想法或目的,這樣的用法可能會有問題。可以通過郵箱(lzs@wch.cn)和我具體溝通一下。


主要是想這樣:

while(1){

????WFI();

????DAP_Handle();

}

想在沒有中斷和其他任務(wù)時進入低功耗狀態(tài)。以前在ARM上可以這樣用。RTOS的Idle也會調(diào)用WFI。

我猜測是wfi之后,usb未完成的DMA也被終止了吧。

似乎arm上,wfi只停止cpu核,并不停止外設(shè)的。


您好,CH32V305執(zhí)行WFI后會進入睡眠模式,該模式下外設(shè)時鐘也是開啟的,你可以在執(zhí)行WFI后加個延時試一下,若方便可將工程發(fā)我具體看一下,后續(xù)問題的溝通可通過郵箱和我溝通。


工程已經(jīng)發(fā)送,請幫忙看一下


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

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