你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
完整PDF教程和例子下载:https://pan.baidu.com/s/1c0V2Why
【安富莱】【RTX操作系统教程】 ãRTXæä½ç³»ç»æç¨ã第21ç« RTXä½åèä¹ç¡ç 模å¼.pdf (677.63 KB, 下载次数: 14) 2016-2-4 16:43 上传 点击文件名下载附件 第21章 RTX低功耗之睡眠模式 低功耗是MCU的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验。 本章节为大家讲解STM32F103和STM32F407的低功耗方式之睡眠模式在RTX操作系统上面的实现方法(RTX本身支持的tickless低功耗模式在第24章节讲解) 本章教程配套的例子含Cortex-M3内核的STM32F103和Cortex-M4内核的STM32F407。21.1 STM32F103睡眠模式介绍21.2 STM32F407睡眠模式介绍21.3 低功耗模式的调试支持21.4 如何有效降低休眠模式下的功耗21.5 实验例程说明21.6 总结 21.1 STM32F103睡眠模式介绍 说明:在RTX系统上面实现睡眠方式仅需了解这里讲解的知识基本就够用了,更多睡眠方式的知识请看STM32F103参考手册和Cortex-M3权威指南。 在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。 STM32F103有三种低功耗模式: (1)睡眠模式(Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统滴答定时器Systick等仍在运行)。 (2)停止模式(所有的时钟都已停止)。 (3)待机模式(1.8V电源关闭)。 本章节我们主要讲解睡眠模式,而在实际的睡眠模式编程时我需要清楚那些问题呢?请继续往下看。 21.1.1 如何进入睡眠模式 通过执行 WFI(等待中断)或WFE(等待事件)指令进入睡眠状态。根据Cortex™-M3系统控制寄存器中的SLEEPONEXIT位的值,有两种选项可用于选择睡眠模式进入机制:(1)SLEEP-NOW:如果SLEEPONEXIT位被清除,当WRI或WFE被执行时,微控制器立即进入睡眠模式。(2)SLEEP-ON-EXIT:如果SLEEPONEXIT位被置位,系统从最低优先级的中断处理程序中退出时,微控制器就立即进入睡眠模式。 小结:本章节配套的睡眠例子我们采用WFI指令进入睡眠模式,睡眠模式的进入机制是采用的SLEEP-NOW。因为系统复位上电后SLEEPONEXIT位是被清除的,所有这个位也不需要专门的去设置。另外在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态。 在RTX系统上,我们可以将WFI指令放到空闲任务里面实现。 21.1.2 如何退出睡眠模式 由于我们是采用指令WFI进入睡眠模式,那么任意一个被嵌套向量中断控制器NVIC响应的外设中断都能将系统从睡眠模式唤醒。并且该模式唤醒所需的时间最短,因为没有时间损失在中断的进入或退出上。 在RTX系统上,主要是周期性执行的系统滴答定时器中断会将系统从睡眠态唤醒,当然,其它的任意中断也可以将其从休眠态唤醒。
举报
21.2.1 如何进入睡眠模式
21.2.2 如何退出睡眠模式
21.5.1 STM32F103开发板实验