ch579中斷喚醒后復位的問題

部分程序如下:

/* 1 )喚醒源設置*/

? GPIOA_ModeCfg( GPIO_Pin_3|GPIO_Pin_5, GPIO_ModeIN_PU );

? GPIOA_ITModeCfg( GPIO_Pin_3|GPIO_Pin_5, GPIO_ITMode_FallEdge );? ? ? ? // 下降沿喚醒

? NVIC_EnableIRQ( GPIO_IRQn );

? ?PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE );//喚醒模式GPIO,ALL=全部。USB\ETH\RTC\GPIO\BAT


/* 2)喚醒后系統(tǒng)時鐘設置*/

? ?PWR_UnitModCfg( ENABLE, UNIT_SYS_HSE );? ?// HSE上電

? ?DelayUs((1200)/5);


? ?HSECFG_Current( HSE_RCur_100 );? ? ?// 降為額定電流(低功耗函數中提升了HSE偏置電流)

? ?DelayUs(25/5);? ? ? ? ? ? ? ? ? ? ? // 等待穩(wěn)定 1-5us?

? ?SetSysClock( CLK_SOURCE_HSE_32MHz );

? ?PRINT( "wake.. \n");? ? ??

? ?DelayMs(500);


/* 3)休眠眠設置*/

? static uint16_t eventRunTimes = 0;

? ?if( events & MAIN_EVENT ){

? ? ? ? ?eventRunTimes += runTime;

? ? ? ? ?if(eventRunTimes > 10000){?

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

? ?? ? ?NVIC_EnableIRQ(GPIO_IRQn);

? ? ?DelayMs(1);

? ???eventRunTimes = 0;

? ???LowPower_Sleep(RB_PWR_RAM2K|RB_PWR_RAM14K|RB_PWR_EXTEND );//只保留14+2K SRAM 供電?

? ? ?SetSysClock( CLK_SOURCE_HSI_32MHz );

? ? ?HSECFG_Current( HSE_RCur_100 );? ? ?// 降為額定電流(低功耗函數中提升了HSE偏置電流)?

?}

? ?tmos_start_task( mainTaskID , MAIN_EVENT ,MS1_TO_SYSTEM_TIME(runTime) );??

? ?return events ^ MAIN_EVENT;

}


目前情況是能正常進入休眠狀態(tài)(儀器測只有幾uA),但是中斷喚醒后芯片復位了,我是在CentPeri這個DEMO中做的修改,其他地方沒動,是什么原因導致芯片復位的。

ch579 的前面16KB 的ram 比較特殊,屬于低功耗下不保持的,

建議著重檢查這部分

對于需要低功耗的工程中,RAM配置建議這樣:

image.png


另外,sdk中CH57x_init.c 這個文件的編譯放置位置:


image.png


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

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