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

esp32 中断最简验证程序

13脚接3.3v脚,显示OK   ,不能直接接5v电压脚

中断程序最好是为各种执行设置标志位。不能处理占用长时间的指令

准备利用中断对超声波模块编程

39e6e7a6f0c04d6ebb5a38b8a8c853d0.jpg

 

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"

// 定义GPIO引脚和标签
#define BUTTON_GPIO 13
#define TAG "BUTTON_ISR"

  char bz=0;
// 中断处理程序
void IRAM_ATTR button_isr_handler(void* arg) {
    // 打印一条信息,表示中断触发
    bz=1;
}

// 初始化GPIO和中断
void app_main() {
    // 配置GPIO引脚
    gpio_config_t io_conf;
    io_conf.intr_type = GPIO_INTR_NEGEDGE; // 下降沿触发
    io_conf.mode = GPIO_MODE_INPUT;        // 输入模式
    io_conf.pin_bit_mask = (1ULL << BUTTON_GPIO); // 配置为按钮GPIO
    io_conf.pull_down_en = GPIO_PULLUP_ENABLE; // 启用上拉
    io_conf.pull_up_en = GPIO_PULLDOWN_DISABLE; // 禁用下拉
 
    gpio_config(&io_conf);

    // 安装GPIO ISR服务
    gpio_install_isr_service(0);
    // 添加中断处理程序
    gpio_isr_handler_add(BUTTON_GPIO, button_isr_handler, NULL);

    // 主循环
    while (1) {
        if(bz==1){
			printf("%s\n","ok");
			bz=0;
		}
        vTaskDelay(pdMS_TO_TICKS(1000));
    }
}

 

 

 

 

 

 

 


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

相关文章:

  • 云原生周刊:Kubernetes v1.32 要来了
  • thinkphp6 入门(2)--视图、渲染html页面、赋值
  • 商业物联网详细指南:优势与挑战
  • QT QLabel双击事件
  • 【DQ Robotics】基于SVD的全秩矩阵逆
  • 剧本杀门店预约小程序,解锁沉浸式推理体验
  • css的“id选择器“命名问题
  • pytest自动化测试执行环境切换的两种解决方案
  • 深度学习系列74:语音中的mel谱
  • 通用文字识别API如何通过Java进行调用?(一)
  • Python知识点:如何使用Appium进行移动应用测试
  • Linux基础(包括centos7安装、linux基础命令、vi编辑器)
  • three.js 开发粒子系统
  • RCU概念
  • 【QNX+Android虚拟化方案】101 - Android GVM 虚拟网络 Virt-Net 配置
  • 数学基础 -- 线性代数之酉矩阵
  • git笔记 -- 日志搜索的方法
  • JAVA HttpUrlConnection 使用 GZIP 编码压缩
  • 学习如何更好向GPT提问
  • 从跟跑到领跑:AIGC时代国产游戏的崛起与展望
  • SpringCloud乐尚代驾学习笔记:项目概述(一)
  • prometheus download all
  • PMC如何建立有效的监控系统来及时发现生产计划的偏离?
  • git version 2.37.0 如何删除远程分支
  • 【单片机开发】单片机的烧录方式详解(ICP、IAP、ISP)
  • Datawhale X 李宏毅苹果书 AI夏令营 Task 3