Arduino ESP32:测试GPIO中断功能

ESP32:测试GPIO中断功能

实例代码

/*测试GPIO中断功能接线说明: 按键1接23,按键2接18
*/#include <Arduino.h>struct Button {const uint8_t PIN;uint32_t numberKeyPresses;bool pressed;
};Button button1 = {23, 0, false};
Button button2 = {18, 0, false};void IRAM_ATTR isr(void* arg) {Button* s = static_cast<Button*>(arg);s->numberKeyPresses += 1;s->pressed = true;
}void IRAM_ATTR isr() {button2.numberKeyPresses += 1;button2.pressed = true;
}void setup() {Serial.begin(115200);pinMode(button1.PIN, INPUT_PULLUP);attachInterruptArg(button1.PIN, isr, &button1, FALLING);pinMode(button2.PIN, INPUT_PULLUP);attachInterrupt(button2.PIN, isr, FALLING);
}void loop() {if (button1.pressed) {Serial.printf("Button 1 has been pressed %u times\n", button1.numberKeyPresses);button1.pressed = false;}if (button2.pressed) {Serial.printf("Button 2 has been pressed %u times\n", button2.numberKeyPresses);button2.pressed = false;}static uint32_t lastMillis = 0;if (millis() - lastMillis > 10000) {lastMillis = millis();detachInterrupt(button1.PIN);}
}

小儿垂钓 唐朝·胡令能
  蓬头稚子学垂纶,侧坐莓苔草映身。
  路人借问遥招手,怕得鱼惊不应人。

Arduino ESP32:测试GPIO中断功能相关推荐

  1. Arduino ESP32定时器功能使用

    Arduino ESP32定时器功能使用 ESP32硬件定时器介绍 ESP32 芯片包含两个硬件定时器组.每组有两个通用硬件定时器.它们都是基于 16 位预分频器和 64 位自动重载功能的向上/向下计 ...

  2. 乐鑫Esp32学习之旅⑦ esp32上利用GPIO中断做一个按键的短按和长按的回调事件,再也无须担心触发源。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  3. Arduino ESP32 通过定时器(Timer)功能唤醒深度睡眠

    Arduino ESP32 通过定时器(Timer)功能唤醒深度睡眠 通过定时器功能,设置5秒,时间到就唤醒深度睡眠 实例代码 /*通过定时器功能唤醒深度睡眠(设置为5秒) */#define uS_ ...

  4. Arduino ESP32深度睡眠触摸唤醒(触摸唤醒)

    Arduino ESP32深度睡眠触摸唤醒(触摸唤醒) 通过D4–GPIO4引脚触摸感应,触发唤醒功能. 睡眠模式下,触摸中断响应流程图 实例代码 /*深度睡眠触摸唤醒(触摸T0唤醒) */#defi ...

  5. Arduino ESP32 WIFI 蓝牙模式触控按键切换

    Arduino ESP32 WIFI &蓝牙模式触控按键切换 相关篇<Arduino ESP32自带触摸传感器功能测试> <ESP32电容式触摸传感器引脚实例> ESP ...

  6. LPC1768外部中断与GPIO中断

    LPC1768的外部中断严格来说只有四个,分别是EINT0,EINT1,EINT2,EINT3,技术手册上有如下说明 控制这四个外部中断靠以下寄存器 这三个寄存器的0 1 2 3位分别代表中断的0 1 ...

  7. micro-ros arduino esp32 ros2 笔记

    micro-ros micro-ros arduino 22-05-25 github.com/micro-ROS/micro_ros_arduino/releases v2.0.5 humble g ...

  8. 【Arduino实验09 外部中断触发报警】

    目录 一.实验目的 二.实验设备与环境 三.实验重点 四.实验难点 五.实验内容 5.1实验任务 5.2实验原理 5.3实验内容 5.4实验结果 5.5思考题 一.实验目的 (1)熟悉外部中断函数.自 ...

  9. Arduino ESP32 对NVS数据操作测试

    Arduino ESP32 对NVS数据操作测试 对NVS数据操作,所需加载的头文件Preferences.h. 对命名空间初始化函数begin()操作测试一 bool begin(const cha ...

最新文章

  1. 我的路子 - 发现游戏为模型的软件架构方式
  2. 调用 fork() 两次以避免僵死进程
  3. Regal灰度发布智能分组引擎
  4. flutter能开发游戏吗_不用 H5,闲鱼 Flutter 如何玩转小游戏?-阿里云开发者社区...
  5. java.util报错
  6. Webbrowser若干点
  7. html网页对账单样式,怎样在EXCEL中做工行对账单,样式字体要...
  8. linux查看内存条pn,内存条,详细教您怎么查看内存条的型号
  9. 淘宝API item_search_similar - 搜索相似的商品
  10. 宁波大学数学系好老师推荐
  11. K近邻法(KNN)与k-Means的区别
  12. 传奇GEE引擎版本架设
  13. COOC6.2增加同义词合并无意义词删除等功能
  14. 简单粗暴识别工作室Android识别模拟器
  15. 有房间匹配和无房间匹配
  16. Windows XP SP2上安装.net 4
  17. android 代码重启app
  18. APP上架实战干货《软件著作权》软著篇
  19. 苹果语音备忘录怎么改名字_苹果手机语音备忘录怎么恢复?教你在手机上直接操作...
  20. 【LINUX】LAMP概念与搭建

热门文章

  1. eps格式流程图制作流程
  2. 在D天内送达包裹的能力
  3. dockerError processing tar file(exit status 1): no space left on device
  4. 73939133——“我穿越了无数条世界线,却看不到我要的未来”
  5. 织梦dede文章列表调用标签的用法和规则
  6. Echat 地图样式格式
  7. 无线路由的四种加密方式
  8. 项目为何要开展第三方测试
  9. 如何直接从TI官方获得芯片的原理图和封装
  10. AIML标签中srai不起作用的原因