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

GPIO 唤醒深度睡眠的esp32-c3

经实验,led 必须接入c3 的gpio 20,21 脚,接入0-10脚led不亮。1脚接高电平,led亮5秒。特别注意,c3 刷入代码后,要按an键退出下载模式单片机才能正常运行。

9808077669754923a15f338bbb19b87f.jpg

代码

#include <stdio.h>
#include "esp_sleep.h"
#include "esp_log.h"
#include "driver/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_timer.h"
#include "esp_system.h"
#include "driver/gpio.h"
#include "nvs_flash.h"
#include "nvs.h"

#define LED 21          //led 不能接入0-10脚
#define AJ  1


void app_main(void) {
    // 配置 LED GPIO 为输出模式   gpio 0 脚为1,led 亮
    gpio_config_t io_conf;
    io_conf.intr_type = GPIO_INTR_DISABLE;
    io_conf.mode = GPIO_MODE_OUTPUT;
    io_conf.pin_bit_mask = (1ULL << LED);
    io_conf.pull_down_en = 0;
    io_conf.pull_up_en = 0;
    gpio_config(&io_conf);
	 
 //   esp_sleep_enable_timer_wakeup(5 * 1000000);
 
     esp_sleep_wakeup_cause_t   hxbz = esp_sleep_get_wakeup_cause();  //取得唤醒的类型,第一次开机类型不属于gpio,led不亮

    // 判断是否是深度睡眠唤醒
    if (hxbz == ESP_SLEEP_WAKEUP_GPIO) {    //GPIO唤醒     if条件内的语句就是唤醒后要执行的语句,如连接WiFi都行
        gpio_set_level(LED,1);
		vTaskDelay(5000/portTICK_PERIOD_MS);   //延时5秒
	    gpio_set_level(LED,0);		
    } 
            //配置唤醒源
	gpio_deep_sleep_hold_dis();	    //在深度睡眠时禁用所有数字gpio pad保持功能。
	esp_deep_sleep_enable_gpio_wakeup((1ULL<<AJ), ESP_GPIO_WAKEUP_GPIO_HIGH); //high
	gpio_set_direction(GPIO_NUM_1, GPIO_MODE_INPUT);	//GPIO定向,设置为输入或输出
    esp_deep_sleep_start();
}


http://www.kler.cn/a/388181.html

相关文章:

  • 场景解决之mybatis当中resultType= map时,因某个字段为null导致返回的map的key不存在怎么处理
  • HarmonyOS ArkTS 下拉列表组件
  • Node.Js+Knex+MySQL增删改查的简单示例(Typescript)
  • 【C++】详解RAII思想与智能指针
  • 【考研数学:高数2】数列极限
  • Django 详细入门介绍
  • 如何找到养生生活视频素材?推荐几个优秀网站
  • 每日一题之成绩排序(进阶版)
  • springboot静态资源映射不生效问题
  • Node.js——fs模块-相对路径的bug与解决
  • 机器学习—多类
  • C++使用开源ConcurrentQueue库处理自定义业务数据类
  • MySQL的其他函数
  • Oracle简介、环境搭建和基础DML语句
  • 网络安全从入门到精通(特别篇IIl):应急响应之病毒蠕虫处置流程
  • 深度学习-张量相关
  • 解决 IntelliJ IDEA Maven 项目 JDK 版本自动变为 1.5 的问题
  • 硬件设备网络安全问题与潜在漏洞分析及渗透测试应用
  • 开源竞争-利用kimi编程助手搭建小程序(11)
  • 解决编译 fast-lio-lc 算法时遇到的error方法
  • uniapp uni-calendar日历实现考勤统计功能
  • 大数据机器学习算法与计算机视觉应用04:多项式
  • macOS开发环境配置与应用开发(详细讲解)
  • 蔚来Android面试题及参考答案(3万字长文)
  • Python小白学习教程从入门到入坑------第二十九课 访问模式(语法进阶)
  • .NET WPF CommunityToolkit.Mvvm框架