本帖最后由 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两个模块,加入这两个模块的关闭函数就正常了,后面开始唤醒功能问题。
|