1.概述
点亮 LED 实际上就是控制 ESP32 的 GPIO 口输出。本文讲述如何在三分钟之内,点亮你的第一个 LED。
2.创建工程
我们在 esp-idf 例子工程上实现,找到 sample_project 文件夹,一般在如下路径,并复制到你的工程目录下。
/esp-idf/examples/get-started/sample_project
使用 VSCODE 打开工程文件如下:

3.话不多说,先上代码
ESP32 控制 LED 灯总共分三步:
第一步: 找到 LED 灯对应芯片的引脚,也就是 LED 灯接到了哪个 GPIO 口上;
第二步: 配置 GPIO 为输出模式;
第三步: 给 GPIO 口写 0,点亮 LED
就是这么简单,三步搞定。代码如下,后面逐条分析。
#include <stdio.h>
#include <driver/gpio.h>
#define GPIO_LED_IO 18 //LED灯对应GPIO18
void app_main(void)
{
printf("hello RYMCU.rn");
// step 1 初始化GPIO
gpio_config_t my_io_config =
{
.pin_bit_mask = 1 << GPIO_LED_IO, //
.mode = GPIO_MODE_OUTPUT, //设置为输出模式
};
gpio_config(&my_io_config);
// step 2 点亮LED
gpio_set_level(GPIO_LED_IO,0);
}

4.代码分析
硬件平台为 RYMCU 的 ESP32-S3 开发板,其中,LED 小灯(编号 D3)连接到了 GPIO18,并且 LED 在开发板的中间靠右侧,如下图所示。

4.1 第一步
因此,第 4 行代码如下,指定 18 为 LED 的 GPIO,第一步 完成。
#define GPIO_LED_IO 18
4.2 第二步
配置 GPIO 需要用到 esp-idf 库函数,需要添加头文件,添加第 2 行代码,如下所示:
#include <driver/gpio.h>
配置 GPIO 口变量 my_io_config,如代码第 10-14 行,如下所示,设置为输出模式。
gpio_config_t my_io_config =
{
.pin_bit_mask = 1 << GPIO_LED_IO, //
.mode = GPIO_MODE_OUTPUT, //设置为输出模式
};
调用函数完成初始化,如代码第 15 行所示:
gpio_config(&my_io_config);
第二步 ,LED 配置完成。
4.3 第三步
调用系统函数,给 GPIO 口写 0,点亮 LED。如第 18 行代码。
`gpio_set_level(GPIO_LED_IO,0);````
第三步 完成。
5.代码编译下载看结果
5.1 代码编译
打开命令行工具,并切换到你的工程目录下,逐条输入以下代码完成芯片配置和编译:
idf.py set-target esp32s3 //设置芯片
idf.py build // 编译
5.2 代码下载
参考《03.一分钟学会 ESP32 代码编译下载》,step3,4。
5.3 演示效果


6