(备份) esp32 GPIO

我理解,任何要对esp32某一脚进行读写操作都要配置gpio。

可以对不同类型,不同的io脚进行配置,比如可以配置2脚为输入,3脚为输出,4脚为上升沿中断

可以用gpio_config_t  结构体对某脚进行配置,也可以用多个gpio函数对某脚进行配置


struct    gpio_config_t

Public Members
{

      uint64_t                   pin_bit_mask                  //使用位掩码设置,每个位映射到一个 GPIO。  1ULL<<12

      gpio_mode_t            mode                      //GPIO 模式:设置输入/输出模式
                                                                               GPIO_MODE_INPUT:将 GPIO 设置为输入模式
                                                                                GPIO_MODE_OUTPUT:将 GPIO 设置为输出模式
                                                                                GPIO_MODE_INPUT_OUTPUT:将 GPIO 设置为输入/输出模式
                                                                                 GPIO_MODE_OUTPUT_OD:将 GPIO 设置为开漏输出模式 这种模式下,GPIO 引脚可以将电流拉到地,但不会主动驱动高电平。通常与外部上拉电阻配合使用
                                                                                GPIO_MODE_INPUT_OUTPUT_OD:将 GPIO 设置为开漏输入/输出模式
                                                                                GPIO_MODE_INPUT_OUTPUT_STRONG:将 GPIO 设置为强驱动输入/输出模式。这种模式下,GPIO 引脚能够主动驱动高电平和低电平
    
       gpio_pullup_t            pull_up_en               //GPIO 上拉
                                                                       GPIO_PULLUP_DISABLE:禁用上拉电阻。GPIO 引脚不会连接到 VCC
                                                                       GPIO_PULLUP_ENABLE:启用上拉电阻。GPIO 引脚会通过上拉电阻连接到 VCC

      gpio_pulldown_t       pull_down_en     //  GPIO 下拉
                                                                        GPIO_PULLDOWN_DISABLE:禁用下拉电阻。GPIO 引脚不会连接到地。

                                                                         GPIO_PULLDOWN_ENABLE:启用下拉电阻。GPIO 引脚会通过下拉电阻连接到地。

      gpio_int_type_t         intr_type                //GPIO 中断类型

                                                                      GPIO_INTR_DISABLE:禁用 GPIO 中断。GPIO 引脚不会触发中断。

                                                                     GPIO_INTR_POSEDGE:在上升沿触发中断。GPIO 引脚从低电平变为高电平时触发中断。

                                                                      GPIO_INTR_NEGEDGE:在下降沿触发中断。GPIO 引脚从高电平变为低电平时触发中断。

                                                                      GPIO_INTR_ANYEDGE:在任意边沿触发中断。GPIO 引脚在上升沿或下降沿时触发中断。

                                                                      GPIO_INTR_LOW_LEVEL:在低电平期间触发中断。GPIO 引脚保持低电平时触发中断。

                                                                      GPIO_INTR_HIGH_LEVEL:在高电平期间触发中断。GPIO 引脚保持高电平时触发中断

}

//---函数------------------------------------------------------------------------------


1   esp_err_t      gpio_config (const gpio_config_t *pGPIOConfig)

2.  esp_err_t       gpio_reset_pin  (gpio_num_t gpio_num)

    将 GPIO 复位为默认状态(选择 GPIO 功能,启用上拉,并禁用输入和输出)

3   esp_err_t       gpio_set_intr_type   (gpio_num_t gpio_num, gpio_int_type_t intr_type)

      设置 GPIO 的中断触发类型

4   esp_err_t     gpio_intr_enable  (gpio_num_t gpio_num)

        启用 GPIO 模块的中断信号。

5  esp_err_t      gpio_intr_disable  (gpio_num_t gpio_num)

     禁用 GPIO 模块的中断信号

6  esp_err_t     gpio_set_level  (gpio_num_t gpio_num, uint32_t level)

    
 7   int       gpio_get_level  (gpio_num_t gpio_num)     


8  esp_err_t      gpio_set_direction  (gpio_num_t gpio_num, gpio_mode_t mode)

     设置指定 GPIO 的工作模式。
9   esp_err_t     gpio_set_pull_mode (gpio_num_t gpio_num, gpio_pull_mode_t pull)

      配置 GPIO 的上拉/下拉电阻。

10  esp_err_t      gpio_wakeup_enable  (gpio_num_t gpio_num, gpio_int_type_t intr_type)

       启用 GPIO 唤醒功能

11   esp_err_t    gpio_wakeup_disable (gpio_num_t gpio_num)

12   esp_err_t    gpio_pullup_en  (gpio_num_t gpio_num)

       Enable pull-up on GPIO.

13    esp_err_t     gpio_pulldown_en (gpio_num_t gpio_num)

        Enable pull-down on GPIO.

14   esp_err_t     gpio_pulldown_dis (gpio_num_t gpio_num)

       Disable pull-down on GPIO.

15    esp_err_t    gpio_install_isr_service  (int intr_alloc_flags)

       安装 GPIO 驱动程序的 ETS_GPIO_INTR_SOURCE ISR 处理程序服务,该服务允许为每个引脚设置 GPIO 中断处理程序

16     void    gpio_uninstall_isr_service(void)

        
       卸载驱动程序的 GPIO ISR 服务,释放相关资源。
17   esp_err_t     gpio_isr_handler_add  (gpio_num_t gpio_num, gpio_isr_t isr_handler, void *args)

        为相应的 GPIO 引脚添加 ISR 处理程序。

18    esp_err_t      gpio_isr_handler_remove  (gpio_num_t gpio_num)


19   esp_err_t     gpio_set_drive_capability  (gpio_num_t gpio_num, gpio_drive_cap_t strength)

      设置 GPIO 引脚的驱动能力。
20    esp_err_t      gpio_get_drive_capability  (gpio_num_t gpio_num, gpio_drive_cap_t *strength)


21   esp_err_t     gpio_hold_en (gpio_num_t gpio_num)

         启用 GPIO 引脚保持功能

22    esp_err_t     gpio_hold_dis (gpio_num_t gpio_num)


23   void     gpio_deep_sleep_hold_en  (void)

       在深度睡眠期间启用所有数字 GPIO 引脚的保持功能。

24   void     gpio_deep_sleep_hold_dis (void)


25   void     gpio_iomux_in  (uint32_t gpio_num, uint32_t signal_idx)


         通过 IOMUX 将引脚输入设置为外设信号

26   void    gpio_iomux_out  (uint8_t gpio_num, int func, bool out_en_inv)

       通过 IOMUX 将外设输出设置到 GPIO 引脚

27   esp_err_t     gpio_sleep_sel_en  (gpio_num_t gpio_num)


        启用 SLP_SEL 以在轻度睡眠中自动更改 GPIO 状态
28    esp_err_t gpio_sleep_sel_dis(gpio_num_t gpio_num)


29   esp_err_t     gpio_sleep_set_direction  (gpio_num_t gpio_num, gpio_mode_t mode)


30   esp_err_t      gpio_sleep_set_pull_mode  (gpio_num_t gpio_num, gpio_pull_mode_t pull)


31   esp_err_t       gpio_dump_io_configuration  (FILE *out_stream, uint64_t io_bit_mask)

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/421213.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支持大型程序代码和拥有大型嵌入式SRAM的指纹芯片-P1032BF1

指纹芯片 - P1032BF1是一款基于ARM Cortex-M3的单片机&#xff0c;专为Wi-Fi /蓝牙通信控制而设计&#xff1b;能够实现指纹的图像采集、特征提取、特征比对&#xff0c;可应用于智能锁&#xff1b;支持大型程序代码和拥有大型嵌入式SRAM&#xff0c;也可用于一般的MCU应用。 …

【文档资料】《你缺失的那门计算机课》

# 站长的话 站长认为此书写的非常好&#xff0c;能够很好的GET到当下普通人所遇到的难点&#xff0c;正如此书的序章所写&#xff1a;“据我们观察&#xff0c;许多同学对「电脑」并不熟悉&#xff0c;甚至可以说是陌生&#xff1a;他们可能在网上被下载到各种「P2P 高速下载器…

C语言代码练习(第十八天)

今日练习&#xff1a; 48、猴子吃桃问题。猴子第1天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过瘾&#xff0c;又多吃了一个。第2天早上又将剩下的桃子吃掉一半&#xff0c;又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时&…

onpm报错: Install failed

api 9 安装ohos/pulltorefresh2.0.1报错误 ohpm install ohos/pulltorefresh2.0.1 ohpm INFO: fetching meta info of package ohos/pulltorefresh ohpm WARN: fetch meta info of package ohos/pulltorefresh failed - GET https://registry.npmjs.org/ohos/pulltorefresh 404…

Git环境搭建

我的博客大纲 我的GIT学习大纲 Git安装步骤&#xff1a; 1.官网地址 查看 GNU 协议&#xff0c;可以直接点击下一步&#xff1a; 2.Git配置选项如下&#xff1a; 3.选择后台客户端连接协议&#xff0c;选默认值 OpenSSL&#xff0c;然后下一步。 4.Git换行符号 5.选择终端类型…

护眼台灯对眼睛好吗?眼科医生推荐的台灯告诉你答案

作为一名家长&#xff0c;我深刻体会到保护孩子眼部健康的重要性。随着科技的迅猛发展&#xff0c;孩子们越来越多地接触并依赖电子设备&#xff0c;如平板电脑、手机和电视&#xff0c;长时间盯着屏幕已成为他们日常生活的一部分。然而&#xff0c;这些屏幕发出的蓝光及闪烁的…

2023年408真题计算机网络篇

https://zhuanlan.zhihu.com/p/6954228062023年网络规划设计师上午真题解析TCP流量计算_哔哩哔哩_bilibili 1 1在下图所示的分组交换网络中&#xff0c;主机H1和H2通过路由器互联&#xff0c;2段链路的数据传输速率为100 Mb/s、时延带宽积 &#xff08;即单向传播时延带宽&am…

Centos7.9部署Gitlab-ce-16.9

一、环境信息 软件/系统名称版本下载地址备注Centos77.9.2009https://mirrors.nju.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.isogitlab-cegitlab-ce-16.9.1https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-16.9.1-ce.0.el7.x86_64.rpm…

手撕Python之正则

1.正则和re模块的联系 正则表达式是一种通用的用来简洁表达一组字符串的表达式&#xff0c;利用正则表达式可以方便快捷的匹配和筛选字符串 举个例子&#xff1a;在一堆数据中进行电话号码的寻找&#xff0c;我们需要根据电话号码的特征在这一堆数据进行电话的寻找&#xff0…

STM32G474RE之RTC

STM32G474RE之RTC使用HAL库实现RTC时间配置&#xff0c;以及报警配置&#xff0c;支持双路报警。 1、STM32G474RE的RTC晶振引脚&#xff1a; OSC32_IN为PC14&#xff0c;OSC32_OUT为PC15&#xff1b; 2、Vbat引脚 Vbat引脚是用来给外部晶振LSE和备份寄存器提供电源。当没有“…

MyBatis简介

目录 前言 什么是Mybatis? 为什么要使用MyBatis? 学会使用MyBatis官网 前言 本篇博客&#xff0c;通过介绍Mybatis的含义和使用原因&#xff0c;简单的介绍Mybatis&#xff01;&#xff01;&#xff01; 我认为最重要的一点就是&#xff1a;学会看官网 什么是Mybatis?…

NET8 MAUIBlazor发布用于windows应用

1.打开 PowerShell 终端 , 命令行进入工程目录,以我的例子工程为例 DOS命令:cd 项目名 2.复制窗口里面的 Thumbprint 下的指纹码, 例如我这个是E18EF79CF31104139F16BD2089F4AB1898D381C2 3.配置项目生成设置, 双击项目名称或者直接编辑 ltyj.C2.Cilent.csproj 文件 添加下面…

Stable Diffusion4.9一键安装教程SD(AI绘画软件)

**无套路&#xff01;**文末提供下载方式 Stable Diffusion 是一款革命性的 AI 绘画生成工具&#xff0c;它通过潜在空间扩散模型&#xff0c;将图像生成过程转化为一个逐步去噪的“扩散”过程。 与传统的高维图像空间操作不同&#xff0c;Stable Diffusion 首先将图像压缩到…

盘古信息:做新能源行业数字化转型升级的领航员

随着全球能源转型的加速与可持续发展目标的明确&#xff0c;新能源行业正步入一个前所未有的广阔发展空间。然而&#xff0c;在迅猛发展的浪潮中&#xff0c;新能源行业也面临着诸多挑战&#xff0c;为应对当前市场环境&#xff0c;新能源行业正积极寻求数字化转型的突破路径&a…

NX—UI界面生成的文件在VS上的设置

UI界面保存生成的三个文件 打开VS创建项目&#xff0c;删除自动生成的cpp文件&#xff0c;将生成的hpp和cpp文件拷贝到项目的目录下&#xff0c;并且在VS项目中添加现有项目。 修改VS的输出路径&#xff0c;项目右键选择属性&#xff0c;链接器中的常规&#xff0c;文件路径D:…

Harmony OS DevEco Studio 如何导入第三方库(以lottie为例)?-- HarmonyOS自学2

在做鸿蒙开发时&#xff0c;离不开第三方库的引入 一.有哪些支持的Harmony OS的 第三方库&#xff1f; 第三方库下载地址&#xff1a; 1 tpc_resource: 三方组件资源汇总 2 OpenHarmony三方库中心仓 二. 如何加入到DevEco Studio工程 以 lottie为例 OpenHarmony-TPC/lot…

通过XMLHttpRequest和window.open在浏览器中打开文件流pdf以及下载pdf

1、浏览器预览pdf&#xff1a; 首先通过接口获取文件流数据 下发是源码 var xhr new XMLHttpRequest(); xhr.open("GET", http://www.baidut.com/downloadFile); xhr.responseType "blob"; xhr.onload function(){ if(this.status 200){ var blob…

服务器环境搭建-5 Nexus搭建与使用介绍

背景 本文介绍nexus的安装、配置和使用&#xff0c;之后通过案例的方式演示使用过程。 1.下载和安装 本文使用Nexus 3.x版本进行演示 下载地址&#xff1a;Download Nexus Repository OSS | Sonatype 国外网站下载速度较慢&#xff0c;也可以通过百度网盘下载(提取码:9999): …

大模型算法岗位面试攻略:100个常见问题详解,高效备战拿下三个offer!

导读 大模型时代很多企业都在开发自己的大模型&#xff0c;这直接刺激了大模型岗位的需求。本文为大家整理了大模型面试相关的知识点&#xff0c;希望对大家面试求职有所帮助。 今天分享大模型面试相关知识点&#xff0c;持续更新。 1. RAG技术体系的总体思路 数据预处理->…

史级低价1元《魔域口袋版》神话斗神·黑悟空 带领战队傲视群雄

原标题&#xff1a;《魔域口袋版》神话斗神黑悟空 1元让您与战队成员战场称霸 易采游戏网9月11日消息&#xff1a;《魔域口袋版》凭借其刺激的战斗体验和丰富的内容&#xff0c;已经成为无数玩家追逐的热血战场。而今&#xff0c;一项前所未有的重磅更新即将引爆整个游戏圈——…