stm32复习总结

stm32低功耗停止模式,关闭了1.8区域时钟,关闭了HSI和HSE时钟,通过外部中断唤醒,外部中断不需要这些配置吗,1.8v区域时钟和HSI,HSE时钟吗?

在 STM32 的 Stop 模式下,即使关闭了 1.8V 区域的时钟、关闭了 HSI 和 HSE,外部中断(EXTI)仍然可以正常唤醒芯片。

不需要 HSI、HSE 和完整的 1.8V 区域时钟来检测外部边沿并产生唤醒。1. Stop 模式到底关了什么?进入 Stop 模式后:

  • 1.8V 内核区域的所有时钟都被停止
  • HSI、HSE、PLL 全部关闭
  • 大部分外设停止工作
  • 但 SRAM 和寄存器内容保留
  • GPIO 状态保持
  • 电压调节器可工作在正常模式或低功耗模式
  1. 为什么 EXTI 还能唤醒?关键点在于:EXTI 的边沿检测电路是异步的。
  • EXTI 有专门的异步唤醒路径
  • 它不依赖系统主时钟(HSI/HSE/PLL)
  • 也不需要 1.8V 区域的完整时钟树在运行
  • 只要对应的 GPIO 引脚和 EXTI 线配置正确,外部信号的边沿就能被检测到,并产生唤醒请求

这就是为什么官方文档明确说:

Stop 模式可以通过任意配置好的 EXTI 线(外部中断或事件)唤醒。

  1. 唤醒后的时钟情况唤醒后系统会自动发生以下变化:

  2. 芯片退出 Stop 模式

  3. 默认使用 HSI 作为系统时钟(频率较低,通常 8MHz 或 16MHz)

  4. 然后才会进入你配置的 EXTI 中断服务函数

  5. 中断返回后,从进入 Stop 的那条指令后面继续执行

因此,唤醒后必须重新配置系统时钟(如果之前用的是 HSE + PLL 等高频时钟),否则外设时序会出错。典型做法:c

复制代码
// 进入 Stop 前
HAL_SuspendTick();   // 可选,关掉 SysTick
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);

// 唤醒后(在中断回调或返回后立刻执行)
SystemClock_Config();  // 重新配置 HSE/PLL 等
HAL_ResumeTick();
  1. 需要提前配置好的内容虽然不需要时钟,但以下配置必须在进入 Stop 之前完成:
必须配置的项目 说明
GPIO 模式 配置为外部中断模式(上升沿/下降沿/双边沿)
EXTI 线映射 正确映射到对应引脚
EXTI 触发方式 RTSR / FTSR 配置好
中断屏蔽 EXTI_IMR 对应位置 1(允许中断)
NVIC 使能对应的 EXTI 中断通道
清除挂起标志 进入前清除 EXTI_PR 和相关唤醒标志
  1. 和其他唤醒源的对比
唤醒源 是否需要 HSI/HSE 是否需要 1.8V 时钟 说明
EXTI 外部中断 不需要 不需要 异步边沿检测
RTC 闹钟/唤醒 不需要(用 LSE/LSI) 不需要 备份域时钟
普通外设中断(定时器、UART等) 需要 需要 通常无法唤醒 Stop
LPUART(部分系列) 可用 LSE 特殊支持 低功耗串口可唤醒

总结

  • Stop 模式下关闭 1.8V 区域时钟、关闭 HSI/HSE 不影响 EXTI 外部中断唤醒。
  • EXTI 使用的是异步检测电路,专门为低功耗唤醒设计。
  • 唤醒后系统默认跑在 HSI 上,需要软件重新配置时钟。
  • 进入 Stop 前必须正确配置好 GPIO + EXTI + NVIC。
相关推荐
Zwawa1 小时前
一只按键不只“按下”:短按、长按和连按如何共存
c语言·单片机·嵌入式
苏格拉真没有底2 小时前
ESP32 AI MCP调试器
stm32·单片机·嵌入式硬件
深圳老胡2 小时前
压力检测空吸功能硬件方案全解析:主流压力传感器品牌与实现路径
笔记·单片机·代码规范
硅基造物主3 小时前
STM32 从 0 到 1 做智能家居(二):把开发环境一次配好
stm32·mqtt·智能家居·hal库·esp-12f
zhangzhangkeji5 小时前
stm32, HAL 库,PVD 与低功耗:
stm32
创界工坊工作室6 小时前
50-基AT89C51的自动窗帘控制系统的设计
stm32·单片机·嵌入式硬件·51单片机·proteus
xiangw@GZ6 小时前
SD / eMMC / SDIO 总线接口技术对比
单片机·嵌入式硬件
新晨单片机设计6 小时前
S030D-WIFI空气净化器(温湿度、甲醛、空气质量)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·空气净化器
知识分享小能手6 小时前
C学习教程,从入门到精通,C语言单片机基础 — 完整知识点手册(19)
c语言·单片机·学习