esp32 GPIO点亮LED灯

客套话就不说了,直接上原理图和程序,理论介绍那些后续再进行补充

1、原理图

esp32 GPIO点亮LED灯_第1张图片

解析:根据电路图我们可以看出:

当IO16引脚输出低电平,LED1亮;当IO16引脚输出高电平,LED1灭;

2、程序:采用模块化编程,所以项目会有一个main主函数以及各个模块.c .h文件

2.1、main函数

#include 
#include "esp_system.h"
#include "esp_spi_flash.h"
#include "esp_wifi.h"
#include "esp_event_loop.h"
#include "esp_log.h"
#include "esp_err.h"
#include "nvs_flash.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/ledc.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/uart.h"
#include "driver/gpio.h"
#include "string.h"
#include "led.h"
 
//主函数入口
void app_main()
{
    int time=100;   //延时1秒 
    led_config();   //LED IO初始化
    while(1) 
    {
 
          gpio_set_level(LED_IO, LED_ON);  //打开灯
          vTaskDelay(time);   //延时1秒
          gpio_set_level(LED_IO, LED_OFF); //关闭灯
          vTaskDelay(time);   //延时1秒
    }
}

2.2、led.c

#include "led.h"
#include "driver/gpio.h"

//LED初始化
void led_config()
{
    gpio_pad_select_gpio(LED_IO);  //选择IO口
    gpio_set_direction(LED_IO, GPIO_MODE_OUTPUT); //设置IO口为输出模式
    gpio_set_level(LED_IO, LED_OFF); //关闭LED
}

2.3、led.h

#ifndef __LED_H
#define __LED_H
    
#define LED_IO 		    16  //对应GPIO16 LED1
 
#define LED_ON          0   //低电平 LED灯亮
#define LED_OFF         1   //高电平 LED灯灭
 
void led_config();     //初始化LED
 
#endif
 


理论知识点:待写!

你可能感兴趣的:(esp32学习笔记)