ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-06-26 11:33:42  阅读:254  来源: 互联网

标签:setup LED 框架 arduino 中断 ESP32 WiFi Serial void


一、中断

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:

}

标签:setup,LED,框架,arduino,中断,ESP32,WiFi,Serial,void
来源: https://www.cnblogs.com/Balcher/p/16413198.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有