CH582M 使用RTC從睡眠模式喚醒時(shí)芯片會(huì)自動(dòng)復(fù)位

請(qǐng)教一下各位關(guān)于ch582m的問題,我使用的是官方的ch582m evt板子,我使用官方的PM例程代碼時(shí)程序運(yùn)行正常,按鍵喚醒也不會(huì)出現(xiàn)復(fù)位的情況。但是使用rtc喚醒時(shí)就會(huì)出現(xiàn)喚醒就復(fù)位的情況。


代碼如下:

#include?"CH58x_common.h"

int?main()
{

????SetSysClock(CLK_SOURCE_PLL_60MHz);


????GPIOA_ModeCfg(GPIO_Pin_All,?GPIO_ModeIN_PU);
????GPIOB_ModeCfg(GPIO_Pin_All,?GPIO_ModeIN_PU);

????//串口調(diào)試初始化
????GPIOA_SetBits(GPIO_Pin_9);
????GPIOA_ModeCfg(GPIO_Pin_8,?GPIO_ModeIN_PU);
????GPIOA_ModeCfg(GPIO_Pin_9,?GPIO_ModeOut_PP_5mA);
????UART1_DefInit();


????PRINT("Test\n");

????while(1)
????{
????????PRINT("Entering?Sleep?mode\n");
????????DelayMs(10);

????????RTC_TMRFunCfg(Period_8_S);
????????PFIC_EnableIRQ(RTC_IRQn);
????????PWR_PeriphWakeUpCfg(ENABLE,?RB_SLP_RTC_WAKE,?Short_Delay);

????????LowPower_Sleep(RB_PWR_RAM30K?|?RB_PWR_RAM2K);?/*?只保留30+2K?SRAM?供電?*/
????????HSECFG_Current(HSE_RCur_100);?????????????????/*?降為額定電流(低功耗函數(shù)中提升了HSE偏置電流)?*/

????????DelayMs(10);
????????PRINT("Wake?up\n");??//這一句因?yàn)閺?fù)位而沒法執(zhí)行
????}
}

/*RTC鬧鐘喚醒中斷*/
__INTERRUPT
__HIGH_CODE
void?RTC_IRQHandler(void)
{
????if?(RTC_GetITFlag(RTC_TMR_EVENT))
????{
????????RTC_ClearITFlag(RTC_TMR_EVENT);
????}
}


1.可以設(shè)置為長(zhǎng)延時(shí)喚醒,

PWR_PeriphWakeUpCfg(ENABLE,?RB_SLP_RTC_WAKE,?Long_Delay);

2.也可以修改下rtc中斷服務(wù)函數(shù):

__INTERRUPT
__HIGH_CODE
void?RTC_IRQHandler(void)
{
????R8_RTC_FLAG_CTRL?=?RB_RTC_TMR_CLR?;
}



你好,試過方法1可以解決問題,謝謝啦!!


不過如果方便的話可以解釋一下背后的原理嗎? :D


短延時(shí)喚醒的話,進(jìn)入中斷時(shí)flash還沒有準(zhǔn)備好,此時(shí)不可以調(diào)用flash里的程序的,

中斷服務(wù)函數(shù)本身就使用highcode修飾,里面直接寫寄存器是可以的,若調(diào)用函數(shù)需要用highcode修飾。


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

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