熱門產(chǎn)品 :
CH397: 高集成度、低功耗USB網(wǎng)卡芯片
查看: 3670
回復: 5
CH571 GPIO中斷,功耗有異常
有時按下電流是這樣。
????GPIOA_ModeCfg(GPIO_Pin_14,?GPIO_ModeIN_PD); ????GPIOA_ITModeCfg(GPIO_Pin_14,?GPIO_ITMode_RiseEdge);??????? ????PFIC_EnableIRQ(GPIO_A_IRQn); ????PWR_PeriphWakeUpCfg(ENABLE,?RB_SLP_GPIO_WAKE,?Edge_LongDelay); ????//PWR_PeriphWakeUpCfg(ENABLE,?RB_SLP_GPIO_WAKE,?Edge_ShortDelay);?shortDelay?會一直復位。
我的工程開了一個1S的事件,感覺這個外部中斷就是有外部中斷來了之后,一直需要idle,等待了其他喚醒事件后才運行相應(yīng)的代碼。
如果我刪除了
u32?CH57X_LowPower(u32?time) ... //????????LowPower_Idle();//刪除了這段代碼,也不會出現(xiàn)等待基本喚醒才運行的 ...
這里是外部中斷的函數(shù),幫我看一下有什么問題,為什么中斷還是進入了Idle,需要等待到RTC喚醒都退出Idle?
外部喚醒可能因為IO抖動導致進入idle模式。
因為看門狗使用的是fsys分頻來的,所以休眠的時候看門狗也會停;
這種情況下,有sleep進入idle模式后,就沒法通過外部事件喚醒了,但是RTC因為32K時鐘存在,所以你這種情況實際是誤觸發(fā)進idle了,然后只能等RTC喚醒。
然后正常運行代碼
代碼我只改了2處地方。
初始化外部中斷以中斷處理函數(shù)
配置成低功耗。
你的意思是進入了Idle模式后,是無法外部中斷是無法喚醒?
請勿發(fā)布廣告和違法內(nèi)容, 代碼可以選擇編輯器代碼語言格式, 更易他人閱讀幫助您, 或者留下聯(lián)系方式,以便更好更快服務(wù)您
只有登錄才能回復,可以選擇微信賬號登錄