介绍在ESP32上使用ESP-IDF开发方式进行LED的操作。

1、准备工作

1.1、硬件模块
  • ESP32-WROVER-E
  • LED
1.2、软件
  • VSCode ESP开发插件
  • ESP-IDF SDK
1.3、连线

ESP32开发板和LED连接到12脚,简图如下: image-20210915233022423

2、编写代码

2.1 GPIO操作LED
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>

#include "driver/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"

void app_main(void)
{
gpio_reset_pin(12);
gpio_set_direction(12,GPIO_MODE_OUTPUT);

while (1)
{
printf("led on\r\n");
gpio_set_level(12,1);

//delay
vTaskDelay(1000/portTICK_PERIOD_MS);

printf("led off\r\n");
gpio_set_level(12,0);

vTaskDelay(1000/portTICK_PERIOD_MS);
}

}
2.2、主要代码说明
  • 要用到GPIO来控制LED,因此需要添加 driver\gpio.h 库文件,用于GPIO外设控制;
  • 要延时操作,使用FreeRTOS系统延时API进行延时,因此添加了FreeRTOS头文件;
  • gpio_reset_pin() 用于将引脚设置默认GPIO功能;
  • gpio_set_direction() 设置引脚的模式,这里设置为输出;
  • gpio_set_level() 设置引脚输出电平;
  • vTaskDelay() 为系统延时API,这里设置延时1000ms即1s;

3、测试验证

3.1、编译并烧写

在esp-idf终端下,输入如下命令完成编译和烧写:

1
idf.py build flash -p COM6

上面 -p COM6 指定ESP32开发板在电脑上对应的串口号。

3.2、查看硬件

可以看到ESP32连接的LED不断闪烁。