ESP-IDF学习笔记第一节：GPIO

那么继续 ESP-IDF 学习，首先是 GPIO。
使用 ESP-IDF 的 GPIO 首先需要初始化 GPIO 口，需要用到 gpio_config () 函数（指南里叫它 API）。

使用 gpio_config () 函数需要配置 gpio_mode_t 结构体。
gpio_mode_t 中的成员包括：

uint64_t pin_bit_mask
GPIO 引脚，是一个二进制数每位表示一个 GPIO 引脚（这边写 "1ull<<x"，其中 x 表示引脚号，1ull 是无符号长整型 1）

gpio_mode_t mode
GPIO 模式（包括输入输出开漏推挽之类）

gpio_pullup_t pull_up_en
GPIO 上拉

gpio_pulldown_t pull_down_en
GPIO 下拉

gpio_int_type_t intr_type
GPIO 是否触发中断

等配置好后调用 gpio_config () 完成 GPIO 初始化。
然后我们通过 gpio_get_level（）来读取输入引脚电平，gpio_set_level（）来更改输出引脚电平。

下面是实际操作，顺便把如何新建项目讲了

首先我们打开新建项目向导

如何选择好项目位置和名称还有开发板，这里我是 ESP-WROOM-32，选 ESP-WROVER-KIT 3.3V 就行。

然后直接点右下角这个按键

选 template 就行，这就是空项目。

完成创建，接着我们发现没有自动打开项目，所以还需要点打开文件夹，找到创建的项目文件夹。

打开 main 文件夹里的 main.c 文件，现在我们写代码。

这边我写了个简单的按钮控制板载 LED 的代码，可以看到我调用了 freertos 库，这个不用在意，我只是调用它的 delay 函数来按键消抖而已。

然后就是编译，在那之前我们要先导入 vscode 配置文件，在命令栏里搜索并选择

接着先清楚一下编译数据，然后才点右边的编译

编译完成后我们选择好端口并烧录，我这边是 CH340USB 转串口，所以选择 UART 串口烧录就行

下面是最终实现效果：

那么 GPIO 就到这里，什么？还有其他 GPIO 函数（API）？哈，我们不学。