ESP8266开发实战之(3)-点亮LED灯

今天尝试点了下esp8266板上的LED灯。虽然使用安装的开发包中自带了例程;不过我还是想写一个自己的,从而熟悉它基本的工程设置。

首先我查了下开发板配套的图,发现LED灯是连接在GPIO2端口的,因此只需要控制GPIO2输出高低电平即可控制LED灯的亮灭。

自带的例程中,其使用了digitalWrite(LED_BUILTIN, HIGH)和digitalWrite(LED_BUILTIN, LOW)来控制灯亮和灭。我尝试找了下LED_BUILTIN的定义,发现没有找到。后面在Arduino的界面中,发现了一个可以配置的项,如下图所示。也就是安装好后的ESP8266开发包将这块做成了一个可配置的项,LED_BUILTIN具体的值取决于这里的选择。

当然,可以不使用LED_BUILTIN,而是直接给出引脚的数值。总之,指定好和板上连接LED对应的引脚即可。

写了一点代码,效果和ESP8266自带的例程一样,也是控制反复亮灭。代码要更简单一些。

/**
 * 功能:控制LED灯闪烁
 * 详细:使用简单的循环间隔来控制LED周期性的闪烁
 * 
 * 编写:李小童
 * 日期:2022-8-8
 * 开发型号:NodeMUC 1.0(ESP-12E)
 * 如需获取更多资料,以及相关的支持,可以联系:527676163@qq.com
 */
#include <ESP8266WiFi.h>

#define LED_PERIOD    300       // 灯亮与来之间的时间间隔,以毫秒为单位
 
static int led_on = 0;          // 当前LED是否显示

/**
 * 初始化函数,在启动后只运行一次
 */
void setup() {
  // 设置LED引脚为输出模式,以便能够控制LED灯显示
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  led_on = !led_on;             // 如果之前LED亮,则灭;反之,则亮

  // 根据当前的led_on决定当前是显示还是熄灭
  digitalWrite(LED_BUILTIN, led_on ? HIGH : LOW);
  delay(LED_PERIOD);
}

以上共两个函数,setup在esp8266初始化时调用一次,loop是会被反复调用。这两个函数是arduino规范要求必须实现的。我个人感觉其内部的运行流程大概下面这样子。

int main (void) {

    ....... 初始化........

    ..........setup()......

    while (1) {

        ......... 一些代码

        .......... loop();

    }

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李述铜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值