FreeRTOS 低功耗之停机模式

以下转载自安富莱电子: http://forum.armfly.com/forum.php

STM32F103 如何进入停机模式
在 FreeRTOS 系统中,让 STM32 进入停机模式比较容易,调用固件库函数 PWR_EnterSTOPMode
即可,不过要注意:为了进入停机模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和 RTC 的闹钟
标志都必须被清除,否则停止模式的进入流程将会被跳过,程序继续运行。
STM32F103 如何退出停机模式
由于我们是采用指令 WFI 指令进入停机模式,那么设置任一外部中断线 EXTI 为中断模式并且在 NVIC
中必须使能相应的外部中断向量,就可以使用此中断唤醒停机模式。
在开发板上面是将实体按键 K2 对应的引脚设置为中断方式触发。按下此按键会将系统从停机模式唤
醒。
STM32F103 使用停机模式注意事项
使用停机模式注意以下两个问题:
进入停机模式前,一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
当一个中断或唤醒事件导致退出停机模式时,HSI RC 振荡器被选为系统时钟。 这个时候用户要根据
需要重新配置时钟,如果使用的 HSE 时钟,那么要重新配置并使能 HSE 和 PLL。

STM32Fxx 如何进入停机模式
在 FreeRTOS 系统中,让 STM32 进入停机模式比较容易,调用固件库函数 PWR_EnterSTOPMode
即可,不过要注意:为了进入停机模式,所有 EXTI 线挂起位(在挂起寄存器 (EXTI_PR)中)、 RTC 闹钟
(闹钟 A 和闹钟 B)、 RTC 唤醒、 RTC 入侵和 RTC 时间戳标志必须复位,否则停机模式的进入流程将会被
跳过,程序继续运行。
STM32F4xx 如何退出停机模式
由于我们是采用指令 WFI 指令进入停机模式,那么设置任一外部中断线 EXTI 为中断模式并且在 NVIC
中必须使能相应的外部中断向量,就可以使用此中断唤醒停机模式。
在开发板上面是将实体按键 K2 对应的引脚设置为中断方式触发,按下此按键会将系统从停机模式唤
醒。
STM32F4xx 使用停机模式注意事项
使用停机模式注意以下两个问题:
进入停机模式前,一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
当一个中断或唤醒事件导致退出停机模式时,HSI RC 振荡器被选为系统时钟。 这个时候用户要根据
需要重新配置时钟,如果使用的 HSE 时钟,那么要重新配置并使能 HSE 和 PLL。
如何有效降低停机模式下的功耗
设计低功耗主要从以下几方面着手:
注意 I/O 的状态。 因为在停机状态下,所有的 I/O 引脚都保持它们在运行模式时的状态。
如果此 I/O 口带上拉,请设置为高电平输出或者高阻态输入。
如果此 I/O 口带下拉,请设置为低电平输出或者高阻态输入。
注意 I/O 和外设 IC 的连接。
测试低功耗的时候,一定不要连接调试器,更不能边调试边测电流。
F429关于低功耗的停机模式说明:
(1) 停机模式是在 Cortex-M4F 的深睡眠模式基础上结合了外设的时钟控制机制,在停机模式下
电压调节器可运行在正常或低功耗模式。此时在 1.2V 供电区域的的所有时钟都被停止,PLL、
HSI 和 HSE 的 RC 振荡器的功能被禁止,SRAM 和寄存器内容被保留下来。
(2) 在停机模式下,所有的 I/O 引脚都保持它们在运行模式时的状态。
(3) 一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
(4) 当一个中断或唤醒事件导致退出停机模式时, HSI RC 振荡器被选为系统时钟。
(5) 退出低功耗的停机模式后,需要重新配置使用 HSE。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值