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

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

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

相关推荐
零一iTEM1 分钟前
MAX98357A_音频输出测试
单片机·嵌入式硬件·开源·音视频·硬件工程
逐步前行9 分钟前
STM32_标准库结构
stm32·单片机·嵌入式硬件
不做无法实现的梦~1 小时前
PX4各个模块的作用(3)
linux·stm32·嵌入式硬件·机器人·自动驾驶
清风6666661 小时前
基于单片机的喷漆机器人自动控制系统
单片机·嵌入式硬件·机器人·毕业设计·课程设计·期末大作业
不能跑的代码不是好代码1 小时前
STM32独立看门狗(IWDG)知识点及标准库使用指南
stm32·嵌入式硬件
程序员良许1 小时前
嵌入式处理器架构
后端·单片机·嵌入式
来自晴朗的明天1 小时前
15、隔离 DC-DC 电源电路(18S12 模块)
单片机·嵌入式硬件·硬件工程
我送炭你添花2 小时前
电子世界的奇妙冒险:从一个电阻开始(系列目录)
人工智能·单片机·嵌入式硬件·fpga开发
VekiSon2 小时前
Linux内核驱动——设备树原理与应用
linux·c语言·arm开发·嵌入式硬件
国科安芯2 小时前
火箭传感器控制单元的抗辐照MCU选型与环境适应性验证
单片机·嵌入式硬件·架构·risc-v·安全性测试