当前位置: 首页 > news >正文

“休眠当关机”,实现不动硬件的一键开关机

方案选择(按硬件改动量从小到大)

方案 A:板上已经有一个按键接到 GPIO(最理想,0 改硬件)

你只要确认这个 GPIO 是RTC GPIO(S3 支持 EXT0/EXT1 唤醒的那类脚),然后固件做:

  • 短按:正常业务(或开机进入系统)

  • 长按 2~3 秒:保存状态 → 进 deep sleep

  • 休眠中按一下:GPIO 触发唤醒 → 开机

✅ 优点:不动硬件
⚠️ 前提:你确实有一个“按键=GPIO”,而不是只有 EN 键


方案 B:只有 EN 键(需要最小飞线/改一个电阻位)

如果你现在唯一的按键就是 EN 复位键,那没法做“休眠唤醒键”,因为:

  • 休眠时芯片已经停了,按 EN 只会复位;

  • 复位 ≠ 唤醒逻辑(也无法区分短按/长按“关机”)

此时最小改动是:

  • 仍然保留 EN 键做复位

  • 再加一个小按键接到某个 RTC GPIO(甚至飞线焊一个贴片按键都行)

✅ 这是“最低代价换来一键开关机体验”的现实做法。


固件实现步骤(不依赖 UI,通用)

1)选一个“唤醒按键 GPIO”

要求:

  • 必须是RTC IO(能做 EXT0/EXT1 唤醒)

  • 不要用启动绑带脚/关键外设脚(比如你正在用的 USB/屏/flash 等)

如果你告诉我:你现在空闲的 GPIO 列表(或原理图全图),我能直接帮你选最安全的那一个。

按键接法建议(最稳):

  • 按键一端接GPIO

  • 另一端接GND

  • GPIO 开内部上拉(不加外部电阻也能跑)

  • 休眠唤醒用低电平唤醒


2)长按关机逻辑(运行态)

  • 轮询或中断都行,建议用轮询+去抖更简单可靠

  • 连续按下超过 2s → 执行go_to_sleep()

go_to_sleep()要做三件事:

  1. 关掉 Wi-Fi/BLE,停止不必要外设

  2. 配置唤醒源(EXT0/EXT1)

  3. esp_deep_sleep_start()


3)唤醒后区分“第一次上电”还是“按键唤醒”

用:

  • esp_sleep_get_wakeup_cause()

唤醒后你可以:

  • 如果是按键唤醒:正常进入系统

  • 如果是上电复位:也正常进入系统(可显示不同开机动画)

  • EXT0 唤醒脚必须是 RTC IO
    否则配置成功但无法唤醒/或者直接报错。

  • 按键电平要和唤醒 level 对上
    你是“按下接地”就用ACTIVE_LEVEL=0+ 上拉。

  • 外设没断电也会耗电
    deep sleep 很省,但如果你的屏、电源IC、传感器一直供电,整机电流可能仍然很高。

  • 如果你只有 EN 键
    真正“一键体验”必须新增一个 GPIO 按键(飞线都行),否则只能“复位键=重启”。

http://www.cnnetsun.cn/news/464648.html

相关文章:

  • 学霸同款2026最新!9款AI论文写作软件测评:毕业论文高效写作指南
  • 微信小程序开发中,模拟器启动失败问题
  • AI写作助手测评:谁是最强创作大脑
  • 【毕业设计】人工智能基于python深度学习的树叶健康识别
  • 深度学习毕设项目:基于人工智能python深度学习的树叶健康识别
  • 从 SEO 到 AEO:Semrush Enterprise AIO 平台如何助力出海品牌抢占 AI 流量入口?
  • Java 对接 PLC 实战:西门子 PLC 与永宏 PLC 通讯方式全面对比
  • 一篇讲透:芋道源码中的「租户」是如何通过程序控制的?
  • geo源码生成式内容搜索优化排名系统开发----
  • 领嵌边缘AI云盒子5G通讯16路AI视频分析4路AHD
  • 免费听书神器喜马拉雅v9.4.32.3精简版分享 解锁付费内容 无限畅听
  • 基于SpringBoot的宠物成长监管系统的设计与实现(源码+lw+部署文档+讲解等)
  • 力扣343 整数拆分 java实现
  • 基于SpringBoot的大学生科技竞赛管理系统(源码+lw+部署文档+讲解等)
  • 从HTML注入到CSRF:一次漏洞组合拳实战
  • 1024编程——让我们的孩子对话未来
  • 五大主流CRM品牌核心能力横向对比:从闭环到协同的全维度拆解
  • 华为ensp:VRF
  • 易语言开发者的职业跃迁与生态共建
  • 架构师视角:网络安全体系深度解析——核心模型、数据标准与落地实践
  • 网络安全核心技术全景:构建稳固防御的五大支柱与前沿趋势
  • 显微观察:Bamtone K系列盲孔显微镜性能优势深度评测
  • 腾讯云VOD AIGC视频生成工具 回调实现
  • Escrcpy(安卓手机投屏软件)
  • springboot+vue开发的在线导游预约系统应用和研究
  • c盘红了怎么清理垃圾而不误删,教您一套安全又效率的清理方法!
  • Linux系统编程:深度解析 Linux 进程,切换调度、环境变量与虚拟内存
  • 编程语言最核心的方面是什么?
  • Python性能测试框架Locust实战教程
  • Jmeter分布式性能测试细节+常见问题解决