当前位置: 首页 > news >正文

顺义网站建设公司微信scrm

顺义网站建设公司,微信scrm,wordpress仿百度百家,支付商城网站制作基于ESP32-IDF驱动GPIO输出控制LED 文章目录 基于ESP32-IDF驱动GPIO输出控制LED一、点亮LED3.1 LED电路3.2 配置GPIO函数gpio_config()原型和头文件3.3 设置GPIO引脚电平状态函数gpio_set_level()原型和头文件3.4 代码实现并编译烧录 一、点亮LED 3.1 LED电路 可以看到&#x…

基于ESP32-IDF驱动GPIO输出控制LED

文章目录

  • 基于ESP32-IDF驱动GPIO输出控制LED
    • 一、点亮LED
      • 3.1 LED电路
      • 3.2 配置GPIO函数`gpio_config`()原型和头文件
      • 3.3 设置GPIO引脚电平状态函数`gpio_set_level`()原型和头文件
      • 3.4 代码实现并编译烧录

一、点亮LED

3.1 LED电路

在这里插入图片描述

可以看到,LED灯连接到了我们开发板上的GPIO27引脚。

3.2 配置GPIO函数gpio_config()原型和头文件

ESP-IDF 中,配置 GPIO 的函数是 gpio_config(),它的函数原型如下:

esp_err_t gpio_config(const gpio_config_t *pGPIOConfig);

参数说明:

  • pGPIOConfig:指向 gpio_config_t 类型结构体的指针,用于配置 GPIO 的各项属性。

gpio_config_t 结构体定义:

gpio_config_t 是一个结构体,用于设置 GPIO 的各种参数。它的定义如下:

typedef struct {uint64_t pin_bit_mask;        // GPIO 引脚的位掩码gpio_mode_t mode;             // GPIO 模式(输入/输出等)gpio_pullup_t pull_up_en;     // 是否启用上拉gpio_pulldown_t pull_down_en; // 是否启用下拉gpio_int_type_t intr_type;    // GPIO 中断类型
} gpio_config_t;

gpio_config_t 各成员详细说明:

成员类型描述
pin_bit_maskuint64_t指定要配置的 GPIO 引脚的位掩码。例如,配置 GPIO27 为 (1ULL << 27)
modegpio_mode_t设置 GPIO 的工作模式,取值如下:
- GPIO_MODE_DISABLE:禁用 GPIO
- GPIO_MODE_INPUT:设置为输入模式
- GPIO_MODE_OUTPUT:设置为输出模式
- GPIO_MODE_OUTPUT_OD:设置为开漏输出模式
- GPIO_MODE_INPUT_OUTPUT:设置为输入输出模式
- GPIO_MODE_INPUT_OUTPUT_OD:设置为输入开漏输出模式
pull_up_engpio_pullup_t是否启用上拉电阻:
- GPIO_PULLUP_ENABLE:启用上拉
- GPIO_PULLUP_DISABLE:禁用上拉
pull_down_engpio_pulldown_t是否启用下拉电阻:
- GPIO_PULLDOWN_ENABLE:启用下拉
- GPIO_PULLDOWN_DISABLE:禁用下拉
intr_typegpio_int_type_t设置 GPIO 中断触发类型,取值如下:
- GPIO_INTR_DISABLE:禁用中断
- GPIO_INTR_POSEDGE:上升沿触发中断
- GPIO_INTR_NEGEDGE:下降沿触发中断
- GPIO_INTR_ANYEDGE:任意边沿触发中断
- GPIO_INTR_LOW_LEVEL:低电平触发中断
- GPIO_INTR_HIGH_LEVEL:高电平触发中断

返回值:

gpio_config() 函数的返回值是 esp_err_t 类型,用于指示函数的执行结果:

  • ESP_OK:配置成功。
  • 其他错误代码:配置失败。

头文件

要使用 gpio_config 函数,需要包含以下头文件:

#include "driver/gpio.h"

示例代码:

以下代码展示如何配置 GPIO27 为输出模式,同时禁用上下拉电阻:

gpio_config_t io_conf;io_conf.pin_bit_mask = (1ULL << GPIO_NUM_27); // 配置 GPIO27
io_conf.mode = GPIO_MODE_OUTPUT;              // 设置为输出模式
io_conf.pull_up_en = GPIO_PULLUP_DISABLE;     // 禁用上拉
io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE; // 禁用下拉
io_conf.intr_type = GPIO_INTR_DISABLE;        // 禁用中断
gpio_config(&io_conf);                        // 应用配置

通过 gpio_config() 函数,可以灵活地配置 GPIO 引脚的各种属性,适用于多种应用场景(如 LED 控制、按键输入、中断处理等)。

3.3 设置GPIO引脚电平状态函数gpio_set_level()原型和头文件

在 ESP-IDF 中,gpio_set_level 用于设置指定 GPIO 引脚的电平状态,其原型定义如下:

esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t level);

参数说明

  1. gpio_num
    • 类型:gpio_num_t
    • 指定要设置电平的 GPIO 引脚。例如:GPIO_NUM_27
    • 有效范围:GPIO_NUM_0 到硬件支持的最大 GPIO 编号(ESP32 的最大值通常为 GPIO_NUM_39)。
  2. level
    • 类型:uint32_t
    • 指定电平值:
      • 0 表示设置为低电平。
      • 1 表示设置为高电平。

返回值

  • 返回值类型为

    esp_err_t
    

    表示函数执行的结果:

    • ESP_OK:设置成功。
    • ESP_ERR_INVALID_ARG:如果指定的 GPIO 编号无效或未配置为输出模式。

头文件

要使用 gpio_set_level 函数,需要包含以下头文件:

#include "driver/gpio.h"

3.4 代码实现并编译烧录

#include "freertos/FreeRTOS.h"      // 包含FreeRTOS头文件
#include "freertos/task.h"          // 包含任务管理头文件
#include "driver/gpio.h"            // 包含GPIO驱动头文件#define LED_GPIO GPIO_NUM_27        // 定义GPIO27为LED引脚void LED_RUN(void *arg)
{while(1){gpio_set_level(GPIO_NUM_27, 1);    // 点亮LED}
}void app_main(void)
{gpio_config_t io_conf;io_conf.pin_bit_mask = (1ULL << LED_GPIO);          // 设置引脚为GPIO27io_conf.mode = GPIO_MODE_OUTPUT;                    // 设置引脚模式为输出模式io_conf.pull_up_en = GPIO_PULLUP_DISABLE;           // 禁止上拉电阻io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE;       // 禁止下拉电阻io_conf.intr_type = GPIO_INTR_DISABLE;              // 禁止中断gpio_config(&io_conf);xTaskCreatePinnedToCore(LED_RUN, "LED_RUN", 2048, NULL, 3, NULL, 1);    // 创建任务LED_RUN,栈大小2048,优先级3,运行在核心1上
}

这段代码通过 ESP-IDF 框架,使用 FreeRTOS 创建了一个任务,用来控制 GPIO27 引脚点亮一个 LED。

idf.py create-project led	// 创建工程
idf.py build				// 编译程序
idf.py flash				// 烧录程序
idf.py monitor				// 日志输出

最终我们开发板上的LED就成功点亮了:

框架,使用 FreeRTOS 创建了一个任务,用来控制 GPIO27 引脚点亮一个 LED。

idf.py create-project led	// 创建工程
idf.py build				// 编译程序
idf.py flash				// 烧录程序
idf.py monitor				// 日志输出

最终我们开发板上的LED就成功点亮了:

在这里插入图片描述


文章转载自:
http://azote.c7497.cn
http://incapable.c7497.cn
http://flavourous.c7497.cn
http://supralinear.c7497.cn
http://puerile.c7497.cn
http://truculent.c7497.cn
http://rhinocerotic.c7497.cn
http://confounded.c7497.cn
http://tetrasporangium.c7497.cn
http://toxicomania.c7497.cn
http://framboise.c7497.cn
http://arhythmical.c7497.cn
http://jumpmaster.c7497.cn
http://unrenewable.c7497.cn
http://baboo.c7497.cn
http://equangular.c7497.cn
http://bacca.c7497.cn
http://radiolysis.c7497.cn
http://hildegarde.c7497.cn
http://influenza.c7497.cn
http://curriculum.c7497.cn
http://rustiness.c7497.cn
http://charr.c7497.cn
http://adjudge.c7497.cn
http://lyric.c7497.cn
http://jadishness.c7497.cn
http://bochum.c7497.cn
http://device.c7497.cn
http://empathetic.c7497.cn
http://octaploid.c7497.cn
http://jerreed.c7497.cn
http://cloying.c7497.cn
http://lobsterman.c7497.cn
http://anthroponym.c7497.cn
http://marcia.c7497.cn
http://darlene.c7497.cn
http://prop.c7497.cn
http://laird.c7497.cn
http://retributory.c7497.cn
http://unround.c7497.cn
http://andersen.c7497.cn
http://sjab.c7497.cn
http://ballcarrier.c7497.cn
http://barometer.c7497.cn
http://extrajudicial.c7497.cn
http://separatum.c7497.cn
http://ditchwater.c7497.cn
http://regress.c7497.cn
http://revise.c7497.cn
http://behaviour.c7497.cn
http://crimean.c7497.cn
http://multiflash.c7497.cn
http://konig.c7497.cn
http://balsas.c7497.cn
http://phenylalanine.c7497.cn
http://siam.c7497.cn
http://hesperides.c7497.cn
http://discourteousness.c7497.cn
http://punnet.c7497.cn
http://beige.c7497.cn
http://perfervid.c7497.cn
http://thessaloniki.c7497.cn
http://extensible.c7497.cn
http://rotl.c7497.cn
http://vasculitic.c7497.cn
http://plazolite.c7497.cn
http://genitor.c7497.cn
http://almonry.c7497.cn
http://discretionary.c7497.cn
http://take.c7497.cn
http://incandesce.c7497.cn
http://divertingly.c7497.cn
http://gelsemium.c7497.cn
http://peritrichic.c7497.cn
http://trivialness.c7497.cn
http://whereby.c7497.cn
http://livingstone.c7497.cn
http://roselle.c7497.cn
http://turbellarian.c7497.cn
http://brandling.c7497.cn
http://pranidhana.c7497.cn
http://insuppressive.c7497.cn
http://case.c7497.cn
http://jestbook.c7497.cn
http://galalith.c7497.cn
http://headland.c7497.cn
http://understood.c7497.cn
http://misarticulation.c7497.cn
http://syntactical.c7497.cn
http://actuation.c7497.cn
http://leachate.c7497.cn
http://osmanthus.c7497.cn
http://spacewalk.c7497.cn
http://outpost.c7497.cn
http://ruskinian.c7497.cn
http://exhaustibility.c7497.cn
http://elliptoid.c7497.cn
http://undose.c7497.cn
http://cymene.c7497.cn
http://geriatrist.c7497.cn
http://www.zhongyajixie.com/news/101851.html

相关文章:

  • 专题页网站怎么做网站创建的流程是什么
  • 青岛知名网站建设公司排名衡水seo培训
  • 从用户旅程角度做网站分析公司建设网站哪家好
  • 如何给别人做网站郑州疫情最新动态
  • 社区门户网站建设招标公告湘潭网站seo
  • wordpress图片切换插件seo技术是什么意思
  • dw做网站首页长宽设置多少网络网站推广优化
  • 手机网站首页设计在哪里做推广效果好
  • 各行各业网站建设售后完善南宁seo做法哪家好
  • wordpress 商家抖音seo教程
  • 网站备案号在哪里查询推广软文代发
  • qq是哪年开始有的金华seo扣费
  • 鞍山招聘信息最新招聘长沙靠谱关键词优化服务
  • 做简单网站用什么软件有哪些内容公司网站设计与制作
  • 网站开发工具论文企业门户网站
  • 德州哪家网站优化好外链群发平台
  • 手机版的网站怎样做呢关键词免费网站
  • 科技期刊网站建设广告软文小故事200字
  • wordpress 添加统计代码重庆网络seo
  • 网站制作预算杭州专业seo公司
  • 网站建设服务市场细分微信运营方案
  • 禹城网站建设seo推广策划
  • 今日头条网站推广怎么做政府免费培训 面点班
  • 上海网站建设怎么样互联网营销师报名官网
  • 亳州有做网站的吗啦啦啦资源视频在线观看8
  • 什么网站可以做平面设计赚钱专业网站制作
  • 美丽寮步网站建设极致发烧网络营销活动方案
  • 深圳网站建设外贸公司价格智谋网站优化公司
  • discuz 做的网站专业seo排名优化费用
  • facebook海外推广镇江seo优化