
本帖最后由 kylongmu 于 2018-1-31 14:36 编辑 前提条件: 1.低功耗STOP2模式仅消耗2uA电流,想要电池系统长时间运行必须采用,而STOP2模式又是低功耗中唯一能保存SRAM数据不丢失的最低功耗模式。 2.FreeRTOS能给开发带来极大的便利性,其采用时间片轮询来实现线程切换,当OS进入IDLE态时CPU处于空闲。 实现以上两点结合就能在FreeRTOS进入低功耗STOP2模式。 实现方法(CubeMX): ![]() 使能USE_TICKLESS_IDLE 此时软件生成2个函数代码:
----------------------------------以上修改后FreeRTOS即配置好进入STOP2的代码------------------------- 进入方法: 线程中调用OsDelay(100),所有线程都要调用,这样OS才能进入IDLE态,一旦进入IDLE态OS自动调用STOP2模式进入低功耗模式。 退出方法: ![]() 手册中给出的Wake UP source都可以退出STOP2,一般配置RTC用外部LSE时钟能自己控制进入低功耗时间。 ------------------------------------------------------------------------------------------------------------------------ 退出后你的OS依然在欢快的奔跑!SRAM数据依然保持! |
https://www.stmcu.org.cn/module/forum/thread-614550-1-1.html