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

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

为了省电,单片机可以进入如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)。

相关推荐
深耕AI16 小时前
【时钟周期 vs 指令】为什么51单片机需要12个时钟周期?
单片机·嵌入式硬件·51单片机
Arciab16 小时前
51单片机_LCD1602液晶显示
网络·嵌入式硬件·51单片机
清风66666619 小时前
基于单片机的多功能智能婴儿车设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
码咔吧咔19 小时前
STM32芯片简介,以及STM32的存储器映射是什么?
stm32·单片机·嵌入式硬件
别掩21 小时前
MOS防倒灌电路设计
单片机·嵌入式硬件
夜流冰1 天前
EE - 电容电感电路中电流的变化
单片机·嵌入式硬件
橙露1 天前
STM32中断配置全解析:从寄存器到HAL库的实战应用
stm32·单片机·嵌入式硬件
c-u-r-ry301 天前
ZYNQ7 Processing System各个配置界面介绍
嵌入式硬件
idcardwang1 天前
esp32s3-pwm介绍与stm32的不同原理
单片机·嵌入式硬件
码咔吧咔1 天前
Flash 是什么?SRAM 是什么?它们的作用、特点、区别、在 STM32 中如何使用?
stm32·嵌入式硬件