请教一下各位关于ch582m的问题,我使用的是官方的ch582m evt板子,我使用官方的PM例程代码时程序运行正常,按键唤醒也不会出现复位的情况。但是使用rtc唤醒时就会出现唤醒就复位的情况。
代码如下:
#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); //串口调试初始化 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); /* 降为额定电流(低功耗函数中提升了HSE偏置电流) */ DelayMs(10); PRINT("Wake up\n"); //这一句因为复位而没法执行 } } /*RTC闹钟唤醒中断*/ __INTERRUPT __HIGH_CODE void RTC_IRQHandler(void) { if (RTC_GetITFlag(RTC_TMR_EVENT)) { RTC_ClearITFlag(RTC_TMR_EVENT); } }
热门产品 :
CH339: 7端口多功能USB HUB控制器芯片