你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

FreeRTOS进入低功耗STOP2模式

[复制链接]
kylongmu 发布时间:2018-1-31 14:33
本帖最后由 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数据依然保持!

评分

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

查看全部评分

收藏 7 评论12 发布时间:2018-1-31 14:33

举报

12个回答
zero99 回答时间:2018-1-31 14:53:42
学习了,支持一下已汇总到1月技术原创
https://www.stmcu.org.cn/module/forum/thread-614550-1-1.html
creep 回答时间:2018-1-31 15:14:35
学习了,支持一下
流水源 回答时间:2018-1-31 16:39:59
学习
MrJiu 回答时间:2018-2-1 11:24:31
必须收藏!!!
wolfgang2015 回答时间:2018-2-2 03:51:00
收藏了。
grc521 回答时间:2018-2-7 10:34:14
好东西,支持一个~~~~~~~~~~~
hrbowenvip-3422 回答时间:2018-9-5 11:54:30
你好有源代码吗??
hrbowenvip-3422 回答时间:2018-9-5 11:56:26
可能给我发下工程源代码吗??QQ:382661235
hpdell 回答时间:2018-9-20 14:44:10
学习了
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版