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。
6