ashwatermelon

ashwatermelon

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

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

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

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

  2. gpio_mode_t mode
    GPIO 模式(包括输入输出开漏推挽之类)

  3. gpio_pullup_t pull_up_en
    GPIO 上拉

  4. gpio_pulldown_t pull_down_en
    GPIO 下拉

  5. gpio_int_type_t intr_type
    GPIO 是否触发中断

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

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

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

image

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

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

image

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

image

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

image

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

image

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

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

image

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

image

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

image

下面是最终实现效果:

1757400713781

1757400704290

那么 GPIO 就到这里,什么?还有其他 GPIO 函数(API)?哈,我们不学。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。