ESP32每个引脚都可以当做中断源
触发中断情况有五种:
这里就通过一个按键中断来记录一下ESP32的中断、LED、串口相关的使用。
功能:GPIO4低电平触发中断,累积触发5次以上中断之后,中断取消。通过LED以及串口打印可查看中断情况。
主要涉及到:中断的设置,中断的使能,中断的失能。
#define LED 2 #define KEY 4 volatile int counter = 0; // 中断中加入可变值的时候需要加volatile // 初始化函数 void setup(){ pinMode(LED, OUTPUT); // LED灯的初始化 Serial.begin(115200); // 串口的初始化 pinMode(KEY, INPUT_PULLUP); // 按键初始化,上拉 attachInterrupt(KEY, Interrupt1, FALLING); // 将按键和中断源绑定起来,下降沿触发中断 } // 循环函数 void loop(){ digitalWrite(LED, LOW); // 灯灭 if( counter > 5){ detachInterrupt(KEY); //取消中断 Serial.println("中断停止"); counter = 0; } delay(500); } // 中断函数 void Interrupt1(){ counter++; Serial.printf("第%d次按下按钮\n", counter); digitalWrite(LED, HIGH); // 灯亮 }
#include <WiFi.h> void setup() { // put your setup code here, to run once: Serial.begin(115200); WiFi.begin("wifiname", "wifipassword"); // 网络名称,密码 // 检查有没有连接成功,没有成功继续连接 while (WiFi.status() != WL_CONNECTED) { Serial.println("等待连接..."); delay(500); } Serial.print("IP地址:"); Serial.println(WiFi.localIP()); } void loop() { // put your main code here, to run repeatedly: }
#include "WiFi.h" const char *ssid = "ESP32Test"; const char *password = "123123456"; void setup() { // put your setup code here, to run once: Serial.begin(115200); WiFi.softAP(ssid, password); Serial.print("\n WiFi接入点的ip: "); Serial.println(WiFi.softAPIP()); } void loop() { // put your main code here, to run repeatedly: }