CH582F下電模式RTC喚不醒
__INTERRUPT
__HIGH_CODE
void?RTC_IRQHandler(void)
{
????RTC_TRIGFunCfg(32768*10);
????RTC_ClearITFlag(RTC_TRIG_EVENT);
}

void?HAL_TimeInit(void)
{
????uint16_t?status?=?0;
#if(CLK_OSC32K)
????sys_safe_access_enable();
????R8_CK32K_CONFIG?&=?~(RB_CLK_OSC32K_XT?|?RB_CLK_XT32K_PON);
????sys_safe_access_enable();
????R8_CK32K_CONFIG?|=?RB_CLK_INT32K_PON;
????sys_safe_access_disable();
????Lib_Calibration_LSI();
#else
????sys_safe_access_enable();
????R8_CK32K_CONFIG?|=?RB_CLK_OSC32K_XT?|?RB_CLK_INT32K_PON?|?RB_CLK_XT32K_PON;
????sys_safe_access_disable();
#endif
????status?=?R8_RESET_STATUS;
????if(((status?&?0x07)?==?0x01?)||?((status?&?0x07)?==?0x03?))
????????RTC_InitTime(2020,?1,?1,?0,?0,?0);
????TMOS_TimerInit(0);
}


按鍵函數(shù)
{?
????KeyCfg.KEY_Event?=?KEY_Event_SingleClick;//?響應(yīng)單擊
????RTC_TRIGFunCfg(32768*10);
????PFIC_EnableIRQ(RTC_IRQn);
????PWR_PeriphWakeUpCfg(?ENABLE,?RB_SLP_RTC_WAKE,?Long_Delay?);
????GPIOA_ModeCfg(GPIO_Pin_All,?GPIO_ModeIN_PU);
????GPIOB_ModeCfg(GPIO_Pin_All,?GPIO_ModeIN_PU);
????LowPower_Shutdown(0);
}

GPIO可以喚醒,可RTC喚不醒,但是用實(shí)例的RTC可以,不清楚哪里出了問題

您好,這邊已經(jīng)全部按您的配置加入程序中測試了一遍,能夠正常將CH582從下電模式中喚醒,


image.png

image.png

image.pngimage.png


奇怪的點(diǎn)在于GPIO可以正常喚醒,內(nèi)部晶振RTC喚不醒,外部晶振RTC只能喚醒一次。

目前板子正常工作時(shí)是6mA,下電模式后是20μA。外部晶振RTC喚醒一次后再進(jìn)入下電模式,電流降到2mA。

后面調(diào)試發(fā)現(xiàn)是死在了LowPower_Shutdown(0);中的?__WFI();

不用LowPower_Shutdown(0);函數(shù)時(shí),RTC也正常工作。

直接下載CH582的PM例程也能正常喚醒,所以這是LowPower_Shutdown(0);和其他函數(shù)沖突了?


您把代碼簡化一下,保留能復(fù)現(xiàn)問題的最精簡的工程發(fā)送至zzy@wch.cn,這邊給您查找一下原因


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

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