【笔记2-6】ESP32:GPIO控制LED亮灭

主要参考b站宸芯IOT老师的视频,记录自己的笔记,老师讲的主要是linux环境,但配置过程实在太多问题,就直接用windows环境了,老师也有讲一些windows的操作,只要代码会写,操作都还好,开发板用ESP-WROOM-32,其实坑还挺多的,慢慢来吧。

通过控制GPIO高低电平来控制LED灯的亮灭,对于ESP32的供电系统,3.3v是高电平,0v是低电平

以下代码创建了一个任务,并每500ms反转一次GPIO电平,其中,初始化时,使用了gpio_config_t结构体,在ESP32工程中,常通过这种方式配置外设。

c 复制代码
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"
#include "driver/gpio.h"

#define LED_GPIO GPIO_NUM_27

//500ms翻转1次任务
void led_run_task(void* param)
{
    int gpio_level = 0;
    while (1)
    {
        gpio_level = gpio_level?0:1;//翻转电平
        gpio_set_level(LED_GPIO , gpio_level);//设置电平
        vTaskDelay(pdMS_TO_TICKS(500));
    }
    
}

void app_main(void)
{
    gpio_config_t led_cfg ={
        .pin_bit_mask = (1<<LED_GPIO),//选择GPIO引脚,可以同时配置多个
        .pull_up_en = GPIO_PULLUP_DISABLE,//因为是输出,不需要配置上拉
        .pull_down_en = GPIO_PULLDOWN_DISABLE,//也不需要下拉
        .mode = GPIO_MODE_OUTPUT,//设为输出模式
        .intr_type = GPIO_INTR_DISABLE,//不需要中断
    };

    gpio_config(&led_cfg);//初始化
    xTaskCreatePinnedToCore(led_run_task , "led" , 2048 , NULL , 3 , NULL , 1);
}

工程可以下载

相关推荐
LaLaLa_OvO12 分钟前
jetbrains 的 datagrip 导出csv,中文乱码
笔记
大囚长25 分钟前
权力的哲学洞察与反思
笔记
云里物里1 小时前
1000个物联网电子标签刷新完需要多久?
物联网·电子价签·电子标签·云里物里·电子墨水屏标签·蓝牙电子标签·电子标签系统
java_logo1 小时前
SiYuan 思源笔记 Docker 部署终极指南:Windows+Linux 双平台
windows·笔记·docker·思源笔记·思源笔记部署·docker部署思源笔记·思源笔记文档
d111111111d2 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习
三佛科技-134163842122 小时前
主控FT32F031便携式吸尘器方案,迷你手持吸尘器MCU控制方案开发
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
愚昧之山绝望之谷开悟之坡2 小时前
什么agentskill.io大白话说清楚
笔记
新新学长搞科研2 小时前
【高质量能源会议推荐】第十一届能源与环境研究进展国际学术会议(ICAEER 2026)
人工智能·物联网·算法·机器学习·能源·环境·新能源
其实防守也摸鱼3 小时前
带你了解与配置phpmyadmin
笔记·安全·网络安全·pdf·编辑器·工具·调试
一个平凡而乐于分享的小比特3 小时前
一文读懂MCU与FPGA:核心区别、协同之道与双修秘籍
单片机·fpga开发·职场发展·mcu开发