嵌入式学习笔记- 单片机的低功耗以及唤醒

一 单片机的低功耗模式定义

为了省电,单片机可以进入如Sleep、Stop、Standby等低功耗模式。在这些模式下,CPU核心时钟可能会停止,但某些外设(如串口、定时器)的时钟仍然可以运行。

理解:**CPU核心时钟停止,程序停止运行,****某些外设时钟可能停止,也可能运行,**这要取决于不同的单片机的硬件设计

二 单片机低功耗的唤醒

通过外设中断唤醒低功耗模式,如外部中断,这是最常见的,或者串口中断,唤醒单片机,这个唤醒的过程是硬件设计实现的。

例如,当一个在低功耗模式下的单片机,其使能了中断的外设(如串口)产生了一个有效的事件(如接收到一个字节),这个中断信号可以将CPU从睡眠中"唤醒",使其退出低功耗模式,恢复正常运行,并执行相应的中断服务程序。

三 低功耗的正确设置方式

为了使单片机能顺利以预想的方式从低功耗模式唤醒,第一要正确设置低功耗模式,第二要正确设置设置外设中断。

1. 进入正确的低功耗模式: 不是所有睡眠模式都能被串口唤醒。你需要进入一个 "可以被该外设中断唤醒" 的低功耗模式。

浅度睡眠(如Wait, Sleep): CPU时钟停止,但外设时钟仍在运行。串口绝对可以唤醒。

深度睡眠(如Stop, Standby): 大部分时钟都停止了。此时需要检查数据手册,看串口是否在特定条件下(例如,使用独立的低速时钟,如32.768kHz的LSE)仍然可以工作并产生唤醒信号。在某些深度睡眠模式下,串口可能无法工作,也就无法唤醒了。

2. 正确设置外设中断

例如要实现串口中断唤醒,必须同时满足以下几个条件:

使能串口接收器: 配置串口控制寄存器,开启接收功能。

使能串口接收中断: 配置串口的中断控制寄存器,允许其在接收到数据时产生中断。

配置I/O引脚: 将对应的RX引脚配置为串口功能,而不是普通的GPIO。

使能全局中断: 确保单片机的全局中断开关是打开的(例如,在ARM Cortex-M核中是__enable_irq(),在51核中是EA=1)。

相关推荐
’长谷深风‘4 小时前
51单片机入门(4温度采集:DS18B20)
单片机·嵌入式硬件·51单片机·ds18b20·温度采集
Hello World . .4 小时前
51单片机——DS18B20 温度传感器
单片机·嵌入式硬件·51单片机
yugi9878385 小时前
51单片机控制8×8点阵显示汉字(上下左右滚动)
单片机·嵌入式硬件·51单片机
LCG元8 小时前
STM32项目开发:基于CAN总线的多节点通信与数据采集系统
stm32·单片机·嵌入式硬件
12.=0.9 小时前
【stm32_2.1】【快速入门】自举模式、Flash闪存、LED点灯——对二极管PN结解析
stm32·单片机·嵌入式硬件
辰哥单片机设计9 小时前
STM32智能风扇(机智云)
stm32·单片机·嵌入式硬件
【 STM32开发 】9 小时前
【STM32 + CubeMX】低功耗 -- SLEEP 睡眠模式
stm32·单片机·低功耗·sleep·睡眠模式
芯芯点灯10 小时前
LIS2DW12驱动,功耗,数据可视化
驱动开发·单片机
Nice__J10 小时前
Mcu架构以及原理——2.Cortex-M流水线与指令集
单片机·嵌入式硬件·架构
小白橘颂10 小时前
【C语言】基础概念梳理(一)
c语言·开发语言·stm32·单片机·mcu·物联网·51单片机