CH592在打開了HAL_SLEEP功能后無法進(jìn)入Timer中斷

基于CH592藍(lán)牙Peripheral例程改的,增加了一個(gè)Timer定時(shí),在中斷程序中做GPIO管腳的高低電平轉(zhuǎn)換。為了功耗將HAL_SLEEP打開了,功耗是降下來了,GPIO管腳就一直是高電平,沒有變化。感覺像是沒有進(jìn)入中斷。不知道是什么問題呢

找到了一個(gè)其他地方的回復(fù)“芯片睡眠時(shí)主頻是不工作的,定時(shí)器是依賴主頻工作的,可以使用tmos任務(wù)來實(shí)現(xiàn)一些定時(shí)任務(wù)。”那ADC中斷、GPIO中斷會(huì)受到休眠的影響么?GPIO中斷貌似需要加入“SetSysClock(CLK_SOURCE_PLL_60MHz);?mDelaymS(1);” ADC中斷需要什么特別處置么?或者說都通過tmos任務(wù)來更合適?


您好,sleep休眠期間,只有RTC喚醒(從內(nèi)部喚醒)、GPIO喚醒(外部觸發(fā)喚醒)兩種途徑喚醒。

RTC本身是基于32K時(shí)鐘運(yùn)行的;GPIO在用作喚醒時(shí),也是異步的不依賴32M時(shí)序的。

TMOS事件中的代碼是可以在RTC喚醒后執(zhí)行的,此時(shí)主頻已運(yùn)行穩(wěn)定。

GPIO中斷的運(yùn)行需要32M時(shí)序提供主頻,前提是在喚醒后,32M晶振已經(jīng)工作穩(wěn)定。不用再手動(dòng)添加“SetSysClock(CLK_SOURCE_PLL_60MHz);?mDelaymS(1);”,BLE例程sleep.c中,喚醒后已經(jīng)做了等待晶振穩(wěn)定的處理。

ADC在每次喚醒后需要在TMOS事件中重新初始化,部分寄存器在休眠期間不保持。


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

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