本帖最后由 1983万年青 于 2022-7-14 15:06 编辑
用AC7811 做低功耗休眠,系统10s没有任何操作输入后,进入休眠模式,休眠程序放在100ms时间片里面;10s周期进入休眠功能函数是可以的,感觉就是没有进入stop状态,系统电流从30mA,降到4.1mA又马上回到30mA,个人认为是哪里设置有问题,导致进入STOP模式前等待ACK超时,退出进入stop模式;
请大佬帮忙看看哪儿有问题,谢谢!
DisableInterrupts
DMA_Uninitialize(DMA1);
ADC_DMACmd(ADC, DISABLE);
ADC_Cmd(ADC, DISABLE);
RTC_Uninitialize();
CTU_ModuleDisable();
WakeUpSet();
SysTick->CTRL = 0; ///<关闭系统时钟。
/* 休眠前手动关闭外部晶振和PLL */
SystemDeInit();
wdgConfigVal.control.enableWDOG = DISABLE;
SysStop();
SystemInit();
SystemClock_Config();
// Wake up Init begin
ATC_CTU_Init();
ATC_GPIO_Init();
ATC_LIN0_Init();
ATC_CAN2_Init();
ATC_ADC_Init();
ATC_PWM2_Init();
ATC_WDG_Init();
ATC_RTC_Init();
ATC_PWM0_Init();
ATC_PWM1_Init();
// End
EnableInterrupts ///<唤醒后先进行必要的处理,再打开中断。
wdgConfigVal.control.enableWDOG = ENABLE;
=================================
重新对照了STOP模式下开启状态的功能块,少关闭了CAN.LIN两个模块,加入这两个模块的关闭函数就正常了,后面开始唤醒功能问题。
|