本文摘自华维主流单片机编程,侵删。

我们在玩游戏时,通常运行质量高的、画质高、体验感好的游戏时,CPU 的风扇会转得非常的快,这是因为CPU 处在100% 运行的状态。那我们单片机在正常工作的时候,它里面的大部分功能都处于开启状态。最耗电的ARM 内核处在100% 全速运行状态。而平时CPU 只有5% 左右的工作量,可是单片机的内核却一直处在全速的状态,为什么我们没有感觉到有特别的变化呢?是因为单片机的性能远低于PC,产生的热量低,我们没有明显的感觉而已。
当我们开发的产品是使用电池供电时,降低功耗、让电量使用更持久就成了这个项目的一个重点,同样一块电池,产品能使用三个小时和使用一天是完全两种不同的体验感。STM32单片机为解决这部分用户的需求,做出了低功耗功能。开发商主要是通过关掉一些耗电大的内部功能来达到省电的目的,根据关掉的功能数量,可分为3 种低功耗模式,分别是睡眠模式、停机模式、待机模式。这些低功耗模式在不同的产品手册中可能会出现不同的名字,比如有的叫待机模式,有的叫断电模式,具体叫什么名字其实并不重要,作为开发者我们只要关心这个模式关掉了什么功能,如何唤醒这些功能就可以了。

睡眠模式,只关掉ARM 内核,其他所有功能正常工作。这种方式是三种模式中最耗电的,但不会影响整个系统的工作。因为内核在关掉之后,可以通过所有内部和外部功能来唤醒内核工作。相当于我们的PC 不用时,CPU几乎处于不工作的状态。当我们随便的按下键盘上的任意一个按键,CPU 又被我们按按键的这个行为唤醒起来工作,处理完我们按键的内容后,又回到几乎关闭的状态。单片机的睡眠模式与PC的睡觉模式有异曲同工之处。睡眠模式的好处是系统可以进行正常工作,这个模式只是内核在没有工作时才关闭;缺点是不够省电。
停机模式是睡眠模式的升级版,它将ARM 内核与几乎所有内部功能,包括外部高速晶体振荡器和PLL 都关掉了,只有RTC、看门狗定时器、中断控制器在工作,只是还能接收中断,SRAM 中的数据还保存。唤醒的方法只有外部中断、RTC 的闹钟还有USB 接口唤醒这几种,因为所有的内部功能都被关掉了,时钟电路都不工作了。这有点像PC 的睡眠模式,只能通过按电源按键才可以唤醒PC,唤醒后系统数据、你打开的文件都还在,因为内存没有关掉。停机模式的优点是非常省电;缺点是程序不能正常运行,只有被唤醒后,内部的功能才能工作。停机模式适用于平时工作任务很少的情况,单片机完成工作后有很长一段时间可以休息。这时开启停机模式,可以最大程度省电。
最后也是最省电的模式是待机模式。它和停机模式的区别是把SRAM 和外部中断控制器也关掉了,用户运行的数据消失,也就表示唤醒后必须重头开始,相当于复位。唤醒的方式是按复位按键、看门狗定时器复位、专用唤醒引脚和RTC 闹钟唤醒。复位按键和专用唤醒引脚完全不耗电,看门狗定时器算是唯一需要耗电的。RTC 闹钟由备用电源供电,不耗逻辑电源的电。待机模式相当于PC 的关机,只有按电源按钮才能复位启动。待机模式在实际的项目开发中几乎很少用到,因为非常不实用,而且停机模式已经很省电了,只有一些特殊需求才会用到。
希望以上的知识能够给大家提供帮助,这期我们先分享到这里,觉得有用的可以给华维点个赞关注一下!
相关阅读 >>
测试表明:苹果 airpods max 耳机更新固件后,主动降噪被削弱
过去 3 个月,美国科技创业公司融资创 2019 年以来最大跌幅
国常会明确释放绿色智能家电消费潜力 6月新能源汽车产销再创新高丨明日主题前瞻
更多相关阅读请进入《新闻资讯》频道 >>