CH571 GPIO中斷,功耗有異常

RF_PHY的工程,

如下的代碼

icon_rar.gifCH571F_GPIO.zip

已經(jīng)打了Sleepimage.png



1631023287(1).png

有時按下電流是這樣。

image.png



????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)等待基本喚醒才運行的
...



b60dd3c5e1b5e8ead1ca7bb92a9e19e.png

77d01100c686269aed396b1e81a4ae8.png

這里是外部中斷的函數(shù),幫我看一下有什么問題,為什么中斷還是進入了Idle,需要等待到RTC喚醒都退出Idle?


外部喚醒可能因為IO抖動導致進入idle模式。
因為看門狗使用的是fsys分頻來的,所以休眠的時候看門狗也會停;
這種情況下,有sleep進入idle模式后,就沒法通過外部事件喚醒了,但是RTC因為32K時鐘存在,所以你這種情況實際是誤觸發(fā)進idle了,然后只能等RTC喚醒。

然后正常運行代碼


代碼我只改了2處地方。

  1. 初始化外部中斷以中斷處理函數(shù)

  2. 配置成低功耗。

你的意思是進入了Idle模式后,是無法外部中斷是無法喚醒?


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

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