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

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

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

相关推荐
蓝斯4971 天前
从.到实现一个Windows上的虚拟hid键盘设备
windows·单片机·计算机外设
熙芯XiChip1 天前
硬实时与软实时RTOS核心区别
嵌入式硬件
伟大的前程1 天前
unsigned int 定义的变量 在 电脑的 64 位系统中 和 32 位 cortex-m0 和 8 位的 51 单片机
单片机·嵌入式硬件
小渔村的拉线工1 天前
1.HPM6E80 解析芯片整体工作原理和存储架构
单片机·嵌入式硬件·mcu·架构·hpm6e80
熙芯XiChip1 天前
CAN与CANopen的本质区别
单片机
lilihewo1 天前
Altium Designer 封装库的创建(分享pcb 3D封装库)
嵌入式硬件·51单片机
神罚天下ET1 天前
典型arm位单片机启动流程(从上电到main.c)
c语言·arm开发·单片机
碧海银沙音频科技研究院1 天前
蓝牙耳机使用WSDF5361锂保芯片进入船运模式实现方法
嵌入式硬件·算法
Zevalin爱灰灰1 天前
模拟信号链电路——基于TL431的电压基准电路
单片机·嵌入式硬件
csdn杰哥1 天前
瑞萨单片机开发教程[二十七] DTC 外部中断触发传输实验
单片机·嵌入式硬件·mongodb·瑞萨·ra6m5