Java教程

【ESP32】arduino框架下ESP32的一些基础内容

本文主要是介绍【ESP32】arduino框架下ESP32的一些基础内容,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、中断

ESP32每个引脚都可以当做中断源
触发中断情况有五种:

  • FALLING 下降
  • RISING 上升
  • CHANGE 改变
  • LOW 低电平
  • HIGH 高电平

这里就通过一个按键中断来记录一下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);  // 灯亮
}

二、WiFi连接

#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:
}

三、创建WiFi热点

#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:

}
这篇关于【ESP32】arduino框架下ESP32的一些基础内容的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!