当前位置: 首页 > 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.gsyq.cn/news/40052.html

相关文章:

  • Linux中读写自旋锁rwlock的实现 - 详解
  • 通过发射高能电子束来控制宇宙射线
  • 各种物质的在宇宙空间中的无线电频谱分析
  • 2025年11月圆锥滚子轴承厂家权威排行:顶尖制造商徐州优力同创服务指南
  • 2025年11月圆锥滚子轴承厂家榜单:行业领袖深度解析与采购指南
  • 实用指南:Linux《线程同步和互斥(下)》
  • 大模型应用开发技术路线(中):大模型微调与定制从概念到落地
  • 深入解析:搭建Jenkins gitlab 环境
  • 2025年11月轴连轴承厂家推荐:轴连轴承厂家的创新趋势与选择指南
  • 使用核反应堆喷射等离子体的飞机
  • 关于“AI编程”,99%的人都还在用过时的玩法
  • 深入理解Django 视图与 URL 路由:从基础到实战 - 指南
  • 三驾马车优化版 v9.13
  • 专为开发者量身打造!!!摆脱 GitHub、GitLab、Hugging Face等平台龟速下载?
  • Python私教FastAPI+React构建Web应用03 FARM技术栈介绍 - 教程
  • latex使用过程中,需要按照期刊要求进行调整的办法(随时更新)
  • 2025年学生会团体服定制厂家推荐:靠谱团体服定制企业全解析
  • 注册绑卡augment,免费试用一年教程--稳
  • fastadmin配合宝塔面板造成cors error 跨域问题
  • 12 Kodi
  • virt-manager代替virtualbox
  • Linux---进程信号 - 教程
  • FPGA自学笔记(正点原子ZYNQ7020):1.Vivado软件安装与点灯 - 教程
  • 【办公类-109-06】20250916圆牌卡片15CM手工纸+动物头像+拼音表+word单面编辑 - 教程
  • 把24款搜狗拼音热门皮肤转成了fcitx可用的
  • Java-143 深入浅出 MongoDB NoSQL:MongoDB、Redis、HBase、Neo4j应用场景与对比 - 详解
  • 2025年哈尔滨PU线条供应商推荐:靠谱的PU线条企业全解析
  • 工业CMOS相机的原理及基础知识
  • 东北区域PU线条设计服务TOP5推荐,PU雕花线条与PU顶角线企业全解析
  • 2025年北京一对一上门辅导机构年度排名:龙文教育集团一对一上门辅导推荐