掉电模式是不是 将rtc 也关闭?如果不想关闭rtc实现最小功耗设置那里,谢谢!

  PRINT("shut down mode sleep \n");

  DelayMs(2);

  LowPower_Shutdown(0); //全部断电,唤醒后复位

  /*

   此模式唤醒后会执行复位,所以下面代码不会运行,

   注意要确保系统睡下去再唤醒才是唤醒复位,否则有可能变成IDLE等级唤醒

   */

  HSECFG_Current(HSE_RCur_100); // 降为额定电流(低功耗函数中提升了HSE偏置电流)

  PRINT("wake.. \n");

//    DelayMs(500);


下电模式的功耗较低。

1.png

超低功耗LDO 维持PMU 供电,RTC没有关闭

2.png具体可直接参考PM的例程。


      PRINT( "sleep mode sleep \n" );

      DelayMs( 2 );

     // 注意当主频为80M时,Sleep睡眠唤醒中断不可调用flash内代码。

     LowPower_Sleep(RB_PWR_RAM16K | RB_PWR_RAM2K); //只保留14+2K SRAM 供电

     HSECFG_Current( HSE_RCur_100 );     // 降为额定电流(低功耗函数中提升了HSE偏置电流)

     DelayMs( 5 );//等时钟稳定

     PRINT( "wake.. \n" );

     

     DelayMs( 5 );


     SYS_ResetExecute();

     

   休眠唤醒后,会不会执行到  

     SYS_ResetExecute();


谢谢!

     



现在测试的结过 是。按键唤醒后,如果,睡眠的时间短 可以看到 执行复位了。如果睡眠的时间长了,就执行不到了。但是,这个时候,供电电流是变大了。


电流变大是不再睡眠了,所以也就不会再执行复位。你在睡眠的那里加个循环,这样可以一直睡眠。

emobile_2022-03-28_20-40-22.png


其实,我并不是想知道如何一直休眠,我是想知道,两种情况  cpu 到底跑到那里了?否则,这个程序不知道怎样写。


Sleep模式下唤醒后,程序正常运行;Shutdown模式下唤醒后,程序会复位。


只有登录才能回复,可以选择微信账号登录