请选择 进入手机版 | 继续访问电脑版
搜索
查看: 9874|回复: 12

[原创] FreeRTOS进入低功耗STOP2模式

[复制链接]

该用户从未签到

43

主题

296

帖子

38

蝴蝶豆

金牌会员

最后登录
2022-3-31
发表于 2018-1-31 14:33:57 | 显示全部楼层 |阅读模式
本帖最后由 kylongmu 于 2018-1-31 14:36 编辑

前提条件:
1.低功耗STOP2模式仅消耗2uA电流,想要电池系统长时间运行必须采用,而STOP2模式又是低功耗中唯一能保存SRAM数据不丢失的最低功耗模式。
2.FreeRTOS能给开发带来极大的便利性,其采用时间片轮询来实现线程切换,当OS进入IDLE态时CPU处于空闲。
实现以上两点结合就能在FreeRTOS进入低功耗STOP2模式。
实现方法(CubeMX):
freertos1.jpg
使能USE_TICKLESS_IDLE
此时软件生成2个函数代码:
  1. /* USER CODE BEGIN PREPOSTSLEEP */
  2. __weak void PreSleepProcessing(uint32_t *ulExpectedIdleTime)
  3. {
  4.         /* place for user code */
  5.         *ulExpectedIdleTime = 0;
  6.         /*Enter to sleep Mode using the HAL function HAL_PWR_EnterSLEEPMode with WFI instruction*/
  7.         HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI);  //Enter Stop mode with WFE instruction
  8. }

  9. __weak void PostSleepProcessing(uint32_t *ulExpectedIdleTime)
  10. {
  11. /* place for user code */
  12.         SystemClock_Config();
  13. }
  14. /* USER CODE END PREPOSTSLEEP */
复制代码
修改为以上,*ulExpectedIdleTime = 0;抑制OS的tick中断,HAL_PWREx_EnterSTOP2Mode进入STOP2模式,SystemClock_Config在退出STOP2模式时重新初始化时钟配置。
----------------------------------以上修改后FreeRTOS即配置好进入STOP2的代码-------------------------
进入方法:
线程中调用OsDelay(100),所有线程都要调用,这样OS才能进入IDLE态,一旦进入IDLE态OS自动调用STOP2模式进入低功耗模式。
退出方法:
freertos2.jpg
手册中给出的Wake UP source都可以退出STOP2,一般配置RTC用外部LSE时钟能自己控制进入低功耗时间。
------------------------------------------------------------------------------------------------------------------------
退出后你的OS依然在欢快的奔跑!SRAM数据依然保持!

评分

参与人数 1ST金币 +2 收起 理由
MrJiu + 2 很给力!

查看全部评分

回复

使用道具 举报

  • TA的每日心情
    开心
    2018-2-6 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    1182

    主题

    4967

    帖子

    1

    蝴蝶豆

    论坛元老

    最后登录
    2020-3-17
    发表于 2018-1-31 14:53:42 | 显示全部楼层
    学习了,支持一下已汇总到1月技术原创
    https://www.stmcu.org.cn/module/forum/thread-614550-1-1.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    60

    主题

    2111

    帖子

    31

    蝴蝶豆

    版主

    最后登录
    2023-6-21
    发表于 2018-1-31 15:14:35 | 显示全部楼层
    学习了,支持一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    1665

    帖子

    65

    蝴蝶豆

    论坛元老

    最后登录
    2021-5-10
    发表于 2018-1-31 16:39:59 | 显示全部楼层
    学习
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    1002

    帖子

    363

    蝴蝶豆

    版主

    最后登录
    2021-4-15
    发表于 2018-2-1 11:24:31 | 显示全部楼层
    必须收藏!!!
    回复

    使用道具 举报

    该用户从未签到

    74

    主题

    1442

    帖子

    194

    蝴蝶豆

    版主

    最后登录
    2023-10-26
    发表于 2018-2-2 03:51:00 来自手机 | 显示全部楼层
    收藏了。
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    32

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2018-11-8
    发表于 2018-2-7 10:34:14 | 显示全部楼层
    好东西,支持一个~~~~~~~~~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2019-8-19
    发表于 2018-9-5 11:54:30 | 显示全部楼层
    你好有源代码吗??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2019-8-19
    发表于 2018-9-5 11:56:26 | 显示全部楼层
    可能给我发下工程源代码吗??QQ:382661235
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    227

    主题

    828

    帖子

    32

    蝴蝶豆

    金牌会员

    最后登录
    2021-1-15
    发表于 2018-9-20 14:44:10 | 显示全部楼层
    学习了
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-3-29 16:34 , Processed in 1.221631 second(s), 47 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表