ESP32开发(二)

您所在的位置:网站首页 mip0222sy管脚定义 ESP32开发(二)

ESP32开发(二)

2024-07-14 15:31| 来源: 网络整理| 查看: 265

        在VSCode中搭建完ESP32的开发环境后,就可以开始快乐编程了。在进行ESP32开发前,我们需要对它的API有个基本了解。

一.资料下载

         授人以鱼不如授人以渔,学会找学习资料很重要。在乐鑫的官网上,给出了各种型号的技术支持,点击支持,技术文档。

         我所使用的开发板为ESP32,所以选择ESP32,选择ESP-IDF编程指南。

        点击开来后,里面有非常详细的教程。这里我们重点关注它的各个API接口,点击API参考,外设API,里面列出了关于各类外设对于的API。这边文章主要介绍关于GPIO配置的各种API函数,后面各种接口函数将在后面学习过程中依次介绍。这里我们选泽GPIO & RTC GPIO。

         GPIO & RTC GPIO介绍文档中先是介绍了ESP32开发板的引脚接口,需要注意的是,并不是所有引脚都能够被复用,有些引脚只能用做指定接口。里面介绍了关于引脚配置所使用到的函数以及结构体。

二.相关函数介绍

在使用相关函数时,我们需要引入相应的头文件:

#include "driver/gpio.h"

(1)用于初始化GPIO引脚函数

//参数: gpio_config_t,GPIO结构指针 //返回:ESP_OK success // ESP_ERR_INVALID_ARG Parameter error //作用:完成对GPIO口方向,上拉,模式,中断等的配置 esp_err_t gpio_config(const gpio_config_t *pGPIOConfig)

(2)引脚高低电平的设置与获取

//参数:GPIO端口号,高低电平(0,1) //返回:ESP_OK success // ESP_ERR_INVALID_ARG Parameter error //作用:设置引脚高低电平 esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t level) //参数:GPIO的引脚号 //返回:引脚电平 int gpio_get_level(gpio_num_t gpio_num)

(3)引脚配置结构体

typedef struct { uint64_t pin_bit_mask; /*配置引脚寄存器*/ gpio_mode_t mode; /*设置引脚模式,输入,输出等*/ gpio_pullup_t pull_up_en; /*上拉使能*/ gpio_pulldown_t pull_down_en; /*下拉使能*/ gpio_int_type_t intr_type; /*中断方式*/ } gpio_config_t; //gpio_mode_t 参数 typedef enum { GPIO_MODE_DISABLE = GPIO_MODE_DEF_DISABLE, GPIO_MODE_INPUT = GPIO_MODE_DEF_INPUT, GPIO_MODE_OUTPUT = GPIO_MODE_DEF_OUTPUT, GPIO_MODE_OUTPUT_OD = ((GPIO_MODE_DEF_OUTPUT) | (GPIO_MODE_DEF_OD)), GPIO_MODE_INPUT_OUTPUT_OD = ((GPIO_MODE_DEF_INPUT) | (GPIO_MODE_DEF_OUTPUT) | (GPIO_MODE_DEF_OD)), GPIO_MODE_INPUT_OUTPUT = ((GPIO_MODE_DEF_INPUT) | (GPIO_MODE_DEF_OUTPUT)), } gpio_mode_t; typedef enum { GPIO_PULLUP_DISABLE = 0x0, /*!< Disable GPIO pull-up resistor */ GPIO_PULLUP_ENABLE = 0x1, /*!< Enable GPIO pull-up resistor */ } gpio_pullup_t; typedef enum { GPIO_PULLDOWN_DISABLE = 0x0, /*!< Disable GPIO pull-down resistor */ GPIO_PULLDOWN_ENABLE = 0x1, /*!< Enable GPIO pull-down resistor */ } gpio_pulldown_t; typedef enum { GPIO_INTR_DISABLE = 0, /*!< Disable GPIO interrupt */ GPIO_INTR_POSEDGE = 1, /*!< GPIO interrupt type : rising edge */ GPIO_INTR_NEGEDGE = 2, /*!< GPIO interrupt type : falling edge */ GPIO_INTR_ANYEDGE = 3, /*!< GPIO interrupt type : both rising and falling edge */ GPIO_INTR_LOW_LEVEL = 4, /*!< GPIO interrupt type : input low level trigger */ GPIO_INTR_HIGH_LEVEL = 5, /*!< GPIO interrupt type : input high level trigger */ GPIO_INTR_MAX, } gpio_int_type_t;

三.创建工程

        打开VScode,Ctrl+Shift+P,在命令框中输入show examples.

         选择sample project->Create project using example sample_project,选择工程文件夹。

         选择我信任此作者。

         打开工程如图所示。

然后我们就开始代码编写 ,这里我就直接张代码了哦!

#include #include #include #include "sdkconfig.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/queue.h" #include "esp_chip_info.h" #include "esp_flash.h" #include "driver/gpio.h" #define RXD GPIO_NUM_19 //GPIO管脚定义 #define TXD GPIO_NUM_23 #define RXD_OUTPUT_PIN_SEL (1ULL


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3