第一章 ESP32 GPIO入门之闪灯

概述

本文为ESP32 学习,GPI0入门之闪灯,更多学习目录请查阅ESP32学习目录。

1.1 基本概念

ESP32 芯片有 40 个物理 GPIO pad,有部分 GPIO pad 不可用或者没有对应的芯片封装上的管脚。每个 pad 都可用作一个通用 IO,或连接一个内部的外设信号的。 IO_MUX、 RTC IO_MUX 和 GPIO 交换矩阵用于将信号从外设传输至 GPIO pad。这些模块共同组成了芯片的 IO 控制。

1.1.1种输入输出模式

GPIO_MODE_INPUT 输入
GPIO_MODE_OUTPUT 输出
GPIO_MODE_OUTPUT_OD 开漏输出
GPIO_MODE_INPUT_OUTPUT_OD 开漏输入输出
GPIO_MODE_INPUT_OUTPUT 输入输出

1.1.2 中断类型

GPIO_INTR_DISABLE 禁用GPIO中断
GPIO_INTR_POSEDGE GPIO中断类型:上升沿
GPIO_INTR_NEGEDGE 下降沿
GPIO_INTR_ANYEDGE 上升沿和下降沿
GPIO_INTR_LOW_LEVEL 输入低电平触发
GPIO_INTR_HIGH_LEVEL 输入高电平触发

1.1.3 上下拉使能

GPIO_PULLUP_DISABLE 禁用GPIO上拉电阻
GPIO_PULLUP_ENABLE 启用GPIO上拉电阻
GPIO_PULLDOWN_DISABLE 禁用GPIO下拉电阻
GPIO_PULLDOWN_ENABLE 启用GPIO下拉电阻

1.1.4 驱动能力

GPIO_DRIVE_CAP_0 弱 weak
GPIO_DRIVE_CAP_1 强
GPIO_DRIVE_CAP_2 默认值
GPIO_DRIVE_CAP_DEFAULT 默认值
GPIO_DRIVE_CAP_3 最强

1.2  实现函数分析

/* GPIO Example* * Brief:* This test code shows how to configure gpio and blink led** USED GPIO:  GPIO16(blue led)** func: blink led** note:**/#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "driver/gpio.h"#include "esp_system.h"
#include "esp_err.h"
#include "esp_event_loop.h"
#include "esp_event.h"
#include "esp_attr.h"
#include "esp_log.h"
#include "esp_eth.h"#define GPIO_BLUE_LED 16static const char *TAG = "GPIO_Example";void hw_gpio_init(void)
{gpio_config_t io_conf;//disable interruptio_conf.intr_type = GPIO_PIN_INTR_DISABLE;//set as output modeio_conf.mode = GPIO_MODE_OUTPUT;//bit mask of the pins that you want to set,e.g.GPIO16io_conf.pin_bit_mask = (1<<GPIO_BLUE_LED);//disable pull-down modeio_conf.pull_down_en = 0;//disable pull-up modeio_conf.pull_up_en = 1;//configure GPIO with the given settingsgpio_config(&io_conf);
}void app_main()
{hw_gpio_init();while(1){
//        ESP_EARLY_LOGE(TAG, "blink led. E");
//        ESP_EARLY_LOGW(TAG, "blink led. W");
//        ESP_EARLY_LOGI(TAG, "blink led. I");
//        ESP_EARLY_LOGD(TAG, "blink led. D");
//        ESP_EARLY_LOGV(TAG, "blink led. V");
        gpio_set_level(GPIO_BLUE_LED, 0);vTaskDelay(1000 / portTICK_RATE_MS);gpio_set_level(GPIO_BLUE_LED, 1);vTaskDelay(1000 / portTICK_RATE_MS);}
}

View Code

转载于:https://www.cnblogs.com/mrsandstorm/p/7657806.html

ESP32 GPIO入门之闪灯相关推荐

  1. 树莓派GPIO入门11-驱动液晶屏幕(一)

    树莓派GPIO入门11-驱动液晶屏幕(一)http://blog.mangolovecarrot.net/2016/01/30/raspi-study1101/ 本系列将驱动一块1.44"的 ...

  2. ESP32 (GPIO)-GPIO学习(5)

    提示:本博客作为学习笔记,有错误的地方希望指正 文章目录 一.ESP32 GPIO介绍 二.硬件设计 三.实现代码 四.演示结果 五.ESP32 GPIO函数API 5.1.gpio_types.h文 ...

  3. 树莓派GPIO入门(五) :简易电子钟

    一.实验要求 利用树莓派驱动数码管,使其能显示时间和日期.通过按键,可以在时间和日期之间切换 二.实验材料 按键1个 4位8段数码管(共阴极) 1个 杜邦线若干 树莓派4B.RPi.GPIO库 三.原 ...

  4. ESP32 GPIO

    MicroPython ESP32 开发 1.ESP32刷入MicroPython以及连接WiFi 2.ESP32 GPIO(本文) 3.ESP32 GPIO 的高低电平与PWM 4.ESP32 控制 ...

  5. ESP32学习入门:WiFi连接网络

    目录 一.ESP32简单介绍 二.ESP32 Wi-Fi模块介绍 三.ESP32 Wi-Fi 编程模型 四.ESP32 Wi-Fi 事件处理流程 五.ESP32 Wi-Fi开发环境 六.ESP32 W ...

  6. 树莓派GPIO入门(一):点亮一个LED灯

    一.实验要求 点亮一个LED灯是电子开发最常见的入门实验.本次实验分为三个小实验: (1)点亮单个LED灯,并让其亮暗闪烁 (2)通过脉宽调制(PWM)点亮单个LED灯,并让其亮暗闪烁 (3)让LED ...

  7. ESP32 快速入门(九):自定义 ESP32 分区表 partitions.csv

    最近在 ESP32 编译中遇到了以下问题: esp_image: Image length 1057652 doesn't fit in partition length 1048576 boot: ...

  8. 树莓派驱动数码管c 语言,树莓派GPIO入门05-驱动数码管显示数字

    标准的数码管从显示内容上分7段和8段数码管两种.8段比7段多一个右下角的小数点.还有一些其他特殊的如可以显示米字形的数码管不在本文讨论范围内,其实原理都是一样的. 8段数码管由8个发光二极管组成,其中 ...

  9. [RPi]树莓派GPIO入门之控制LED灯

    本文部分资料及图片来自网络 一.所需材料 树莓派4B.LED灯.面包板.杜邦线.电阻.Python程序 二.认识硬件材料 这里介绍下LED灯.面包板.杜邦线.电阻 LED灯:LED灯引脚长的一端为正极 ...

  10. 树莓派GPIO入门(三) :多种模式的LED控制器

    一.实验要求 通过LED控制器可以在流水点亮.间隔点亮.追逐点亮.全部亮并闪烁这四种模式中选择点亮LED灯的方式. 其中,↓表示有键按下,1 表示无键按下,x 表示不管有没有按键: 流水点亮即为 LE ...

最新文章

  1. 我的这10年——从机械绘图 到 炼油 到 微软MVP 的华丽转身
  2. python爬虫框架排行榜-8个最高效的Python爬虫框架,你用过几个?
  3. ASP.NET(C#)常用数据加密和解密方法汇总
  4. 系统调用回答为什么要用buffer写
  5. 【音视频安卓开发 (七)】安卓视频播放窗口去掉标题栏、全屏、横屏
  6. android 自定义 popupwindow,Android自定义弹出窗口PopupWindow使用技巧
  7. idea怎么把代码放到git_在IntelliJ IDEA中同步代码到华为云git仓库 (on windows)
  8. Python学习之解释器的简单使用
  9. python人脸识别防小偷_基于python的人脸识别(检测人脸、眼睛、嘴巴、鼻子......)...
  10. 【渝粤教育】国家开放大学2018年春季 0603-22T建筑工程管理与实务 参考试题
  11. 请教各位前辈一个问题。
  12. web前端开发与应用——超链接
  13. QQ坦白说解密(一)
  14. lbj学习日记 07 函数基础
  15. 使用bs4爬取《孙子兵法》(处理string属性遇见<br>标签时提取为空)
  16. Flink SQL xxx is not serializable. The object probably contains or references non serializable field
  17. Staged Event Driven Architecture (SEDA) 介绍
  18. Win7~Win10关闭任务栏缩略图
  19. 慕课网_《Redis入门》学习总结
  20. 创客学院知识巩固-02数据结构

热门文章

  1. tensorflow架构_TensorFlow半监督对象检测架构
  2. matlab没有曲线,有个程序,运行后只有坐标没有曲线,是怎么回事呢 望大神们解答...
  3. 计算机网络-UDP和TCP套接字编程
  4. apache poi excel显示 base64 图片_java操作Excel一:POI
  5. python赋值与c语言区别,运算符-赋值运算符和逻辑运算符
  6. 店宝宝电脑版_母婴店主干货分享:母婴店利润究竟有多大?
  7. ROS main函数中订阅器的编写
  8. kali--linux--安装截图工具scrot
  9. Linux 内核版本号查看
  10. 三十七、【获取相机权限】