在STM32上使用FreeRTOS的Tickless(停止模式)

在STM32上使用FreeRTOS的Tickless(停止模式)

RTOS的Tickless功能就是当程序运行在空闲任务中时,就进入低功耗模式,这个低功耗可以是普通的睡眠模式,也可以是停止模式。RTOS在进入空闲任务前,会计算出将要在空闲任务里跑多久,然后进入到空闲任务里就设置多久触发中断的定时器,从设置定时器到定时器产生中断这个时间段就可以进入低功耗模式。这就是RTOS的Tickless原理。

1.打开低功耗定时器LPTIM1,使用默认配置即可,最后打开NVIC中断开关。
在这里插入图片描述
2.LPTIM1的时钟源选择LSE或LSI,STM32的停止模式下,LSE和LSI还仍在工作。
在这里插入图片描述
3.勾上FreeRTOS,并在USE_TICKLESS_IDLE中选择用户自定义模式。
在这里插入图片描述
4.FreeRTOS的时钟节拍由LPTIM1定时器代替SysTick,停止模式下SysTick
是无法工作的。
在这里插入图片描述
5.初始化时关闭SysTick,并开启LPTIM1以1ms为周期产生中断。
在这里插入图片描述
6.烧写程序到板子上,因为这个板子上还有其他外设,功耗肯定是大于1mA的,但整个板子是非常凉快没有发热。实际STM32的功耗应该是uA级别的,大约5uA到20uA这样。另外板子运行时的热成像图:可见板子基本和环境温度差不多,而旁边的ST-Link,虽然是STM32F103C8T6,但温度仍高很多。
在这里插入图片描述

最后留下工程:
链接:https://pan.baidu.com/s/1XRu_ds-sRxSJG_nd-hpszg
提取码:oh4k

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103RCT6 是一款基于ARM Cortex-M3内核的微控制器,它支持FreeRTOS操作系统。在FreeRTOS中,停止模式是一种省电的模式,可以使处理器进入低功耗状态以降低能耗。下面是关于STM32F103RCT6使用FreeRTOS停止模式的解释。 当应用程序没有任务可执行时,可以将处理器置于停止模式以节省能量。在停止模式下,处理器暂停运行,系统时钟以及与外设的通信将被禁止。进入停止模式可以通过以下方法实现: 1. 配置FreeRTOS定时器中断:通过定时器中断,我们可以设置一个定时器,在一定的时间间隔内检查任务的状态。当任务都处于挂起或阻塞状态时,可以执行停止模式。 2. 配置系统时钟和外设时钟的低功耗状态:通过配置相关寄存器,可以降低系统时钟和外设时钟的频率,以降低功耗。这样可以进一步降低整个系统的功耗。 3. 使处理器进入低功耗模式:处理器可以通过配置相关寄存器,使自身进入低功耗模式。在低功耗模式下,处理器停止或降低内部时钟频率,从而降低功耗。 需要注意的是,在停止模式下,处理器的状态将会被保留,当处理器从停止模式唤醒时,可以继续执行之前的任务。唤醒处理器的事件可以是外部中断、定时器中断或其他内部触发事件。 总之,通过在FreeRTOS中配置和使用停止模式,可以有效降低系统的功耗,在应用程序没有任务要执行时,最大限度地节省能量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值