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

ESP32- 开发笔记- 软件开发 4 - GPIO 口

1 背景介绍

GPIO(General Purpose Input/Output) ——通用输入输出口,就是能由软件自由控制输入(接收外界信号)或输出(发出电平信号)的引脚。

ESP32 最核心的功能之一,能被用来控制、连接、读取各种外设,比如按键、LED、传感器、继电器、屏幕等。

ESP32 有多达 39 个 GPIO 引脚,编号为 GPIO0 ~ GPIO39,不过并不是每一个都可以任意使用。

在这里插入图片描述

1.1 基本特性

ESP32 直接接 5V 会烧毁 ESP32,若要连接 5V 系统(如 Arduino),必须加 电阻分压 或 逻辑电平转换器。最大电压不能超过3.6V。
最大输出电流(单 GPIO) ~12 mA(官方建议) 超过可能导致芯片发热或失效。一般建议电流不要超过8mA。

在这里插入图片描述

gpio_set_drive_capability() 是 ESP-IDF 提供的函数,用来设置 ESP32 GPIO 的驱动能力(Drive Strength),也就是输出电流能力。
这在以下情况非常有用:

  1. 控制高速信号(如SPI/I2C)
  2. 驱动多个器件(比如多个LED)
  3. 要求更强的上升沿/下降沿速度
esp_err_t gpio_set_drive_capability(gpio_num_t gpio_num, gpio_drive_cap_t strength);

gpio_num GPIO编号(如 GPIO_NUM_2)
strength 驱动能力,类型为 gpio_drive_cap_t
在这里插入图片描述
其它常见电气控制函数

在这里插入图片描述

1.2 不建议使用GPIO口

在这里插入图片描述

1.3 常用设置

在这里插入图片描述

1.3 IO Matrix(IOMUX)

ESP32每个引脚都可以通过IO Matrix(IOMUX)将其映射为某种外设功能,比如 UART、PWM、SPI等。这意味着你可以自由地分配功能到引脚,非常灵活!你可以把 I2C 的 SDA/SCL 分别映射到 GPIO21 和 GPIO22,也可以换成 GPIO18 和 GPIO19,只要代码里配置对应即可。

1.4 总结

ESP32 的 GPIO 功能非常强大、灵活。

要注意某些 GPIO 的启动限制或输入输出限制。

使用前建议查 ESP32 的 datasheet 或 IO 使用图。

可以结合中断、PWM、ADC、DAC、外设等,组成丰富的控制/采集系

2 控制函数介绍

在这里插入图片描述
用 gpio_config() 一次性配置多个参数,适用于批量初始化

gpio_config_t io_conf = {.pin_bit_mask = 1ULL << GPIO_NUM_2,.mode = GPIO_MODE_OUTPUT,.pull_up_en = GPIO_PULLUP_DISABLE,.pull_down_en = GPIO_PULLDOWN_DISABLE,

http://www.mrgr.cn/news/100753.html

相关文章:

  • 在C# WebApi 中使用 Nacos02: 配置管理、服务管理实战
  • MySQL 实战 45 讲 笔记 ----来源《极客时间》
  • 【MCP教程系列】如何自己打包MCP服务并部署到阿里云百炼上【nodejs+TypeScript】搭建自己的MCP【Cline】
  • 各服务日志: Grok正则解析
  • Axure疑难杂症:全局变量典型应用及思考逻辑(玩转全局变量)
  • Druid监控sql导致的内存溢出--内存分析工具MemoryAnalyzer(mat)
  • FPGA 39 ,FPGA 网络通信协议栈进阶,RGMII、ARP 与 UDP 协议与模块设计( RGMII、ARP、UDP原理与模块设计 )
  • Python自我娱乐小游戏:跳跳糖
  • Vue3 Echarts 3D圆柱体柱状图实现教程以及封装一个可复用的组件
  • MySQL基础篇 | 数据库概述及在TencentOS中安装MySQL8.0.42版本
  • 【学习资源】知识图谱与大语言模型融合
  • Python小程序:上班该做点摸鱼的事情
  • 大语言模型 04:模型量化详解 KTransformers MoE推理优化技术
  • ClickHouse副本集群
  • 连接私有数据与大语言模型的强大框架--LlamaIndex详细介绍与案例应用
  • CC52.【C++ Cont】滑动窗口
  • 什么是环境变量,main函数的命令行参数的概念和作用,以及进程地址空间详解
  • K8S ConfigMap 快速开始
  • 【Linux应用】在PC的Linux环境下通过chroot运行ARM虚拟机镜像img文件(需要依赖qemu-aarch64、不需要重新安装iso)
  • 详解操作系统是如何管理计算机软硬件资源的,以及Linux中进程状态的观察与解释