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

ESP32 中断

中断

含义:程序被中断程序打断转去执行中断程序

将中断附加到GPIO

void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode); 

ISR 函数原型

void ISR()
{//中断发生时执行的代码
}

外部中断类型

LOW 低电平触发中断
HIGH 高电平触发中断
RISING 上升沿触发中断
FALLING 下降沿触发中断
CHANGE   变化时触发中断

分离中断

detachInterrupt(uint8_t interruptNum);

最简单的中断程序代码

#include <Arduino.h>const byte LED = 13;
const byte BUTTON = 2;void ButtonISR() 
{if(digitalRead(BUTTON) == HIGH){digitalWrite(LED, HIGH);}else digitalWrite(LED, LOW);
}
void setup() 
{pinMode(LED,OUTPUT);pinMode(BUTTON,INPUT_PULLUP);attachInterrupt(digitalPinToInterrupt(BUTTON),ButtonISR,CHANGE); 
}void loop() {
}

PS:对于非原子操作,需要考虑同步问题
就需要用 noInterrupt()interrupt() 函数来关闭和开启中断

对于在临界区中的代码,需要考虑同步问题

portENTRY_CRITICAL(&mux); //进入临界区
portEXIT_CRITICAL(&mux); //退出临界区
http://www.jsqmd.com/news/31472/

相关文章:

  • 25.11.4随笔联考总结
  • docker 常用命令本地部署打包
  • Linux中读写自旋锁rwlock的实现 - 详解
  • 用古代数论分析电磁波频谱
  • AddressSanitizer (ASan) is a fast memory error detector
  • 「CF1210F2-Marek and Matching (hard version)」题解
  • 详细介绍:【数据结构】考研算法精讲:分块查找的深度剖析 | 从“块内无序、块间有序”思想到ASL性能最优解
  • 通过发射高能电子束来控制宇宙射线
  • ICPC2025西安 游记(VP)
  • 2025年11月汽车水泵轴承源头厂家综合评测与选择指南:徐州优力同创领跑行业
  • 各种物质的在宇宙空间中的无线电频谱分析
  • PQ v.Next 团队项目Alpha阶段分工
  • Rari黑客事件全额赔偿方案详解
  • 2025年11月圆锥滚子轴承厂家权威排行:顶尖制造商徐州优力同创服务指南
  • TOON 格式终于赢了!AI 大模型基准测试揭示惊人真相
  • 2025年11月圆锥滚子轴承厂家榜单:行业领袖深度解析与采购指南
  • Spring进阶- Spring IOC构建原理(二)IOC初始化流程
  • 2025年11月轴连轴承厂家推荐榜:行业领导者徐州优力同创解决方案解析
  • 实用指南:Linux《线程同步和互斥(下)》
  • 大模型应用开发技术路线(中):大模型微调与定制从概念到落地
  • 深入解析:搭建Jenkins gitlab 环境
  • 基于业务知识和代码库增强的大模型生成代码实践
  • 告别 “盲买”!京东 AI 试穿 Oxygen Tryon:让服饰购物从“想象”到“所见即所得”
  • 2025年11月轴连轴承厂家推荐:轴连轴承厂家的创新趋势与选择指南
  • 使用核反应堆喷射等离子体的飞机
  • 完整教程:软件设计师-计算机基础-CPU题型
  • 关于“AI编程”,99%的人都还在用过时的玩法
  • 超人福袋助手,抖音福袋扭蛋机,抖音抢福袋工具
  • P12028 [USACO25OPEN] Moo Decomposition G 题解
  • Automation 错误