ESP32开发学习记录---》GPIO

she        2025年2月5日,新年后决定开始充电提升自己,故作此记,以前没有使用过IDF开发ESP32因此新年学习一下ESP32。

        ESPIDF开发环境配置网上已经有很多的资料了,我就不再赘述,我这里只是对我的学习经历的一些记录。

        首先学习一个芯片我们当然先使用的GPIO设置啦,GPIO对一个单片机来说相当于各个语言的hello world。那么第一章学习我们就从GPIO配置开始吧,学习一个单片机的最应该做的就是学习官方的文档,学不明白可以看视屏查资料所以我们的开端也是从官方手册开始搜索ESP32的编程文档。GPIO & RTC GPIO - ESP32 - — ESP-IDF 编程指南 latest 文档

首先我们来到GPIO章节可以看到:gpio_config()函数配置了所有的GPIO模式配置。

头文件配置使用的是driver/gpio.h的头文件,那么这些头文件在哪呢?

查看头文件的位置

GPIO配置函数:

/*** @brief GPIO common configuration**        Configure GPIO's Mode,pull-up,PullDown,IntrType** @param  pGPIOConfig Pointer to GPIO configure struct** @return*     - ESP_OK success*     - ESP_ERR_INVALID_ARG Parameter error**/
esp_err_t gpio_config(const gpio_config_t *pGPIOConfig);

设置GPIO输出的函数: 

/*** @brief  GPIO set output level** @note This function is allowed to be executed when Cache is disabled within ISR context, by enabling `CONFIG_GPIO_CTRL_FUNC_IN_IRAM`** @param  gpio_num GPIO number. If you want to set the output level of e.g. GPIO16, gpio_num should be GPIO_NUM_16 (16);* @param  level Output level. 0: low ; 1: high** @return*     - ESP_OK Success*     - ESP_ERR_INVALID_ARG GPIO number error**/
esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t level);

那么我们只需要配置相应的函数即可。

#include <stdio.h>
#include"driver/gpio.h"void app_main(void)
{const gpio_config_t io_config={.intr_type=GPIO_INTR_DISABLE,         //失能中断.mode=GPIO_MODE_OUTPUT,               //模式为输出模式.pin_bit_mask=1ull<<GPIO_NUM_2,       //设置输出引脚为gpio2.pull_down_en=GPIO_PULLDOWN_DISABLE,  //设置不下拉(上拉下拉与输入有关与输出无关都设置为失能).pull_up_en=GPIO_PULLUP_DISABLE        };                                        //结构体初始化,配置相应的参数gpio_config(&io_config);while(1)                                  //设置死循环反复执行{gpio_set_level(GPIO_NUM_2,1);         //设置为高电平}}

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

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

相关文章

pycharm集成通义灵码应用

在pycharm中安装通义灵码 1、打开files-settings 2、选中plugins-搜索”TONGYI Lingma“&#xff0c;点击安装 3.安装完成后在pycharm的右侧就有通义灵码的标签 4、登录账号 5、查看代码区域代码&#xff0c;每一个方法前面都多了通义灵码的标识&#xff0c;可以直接选择…

Git--使用教程

Git的框架讲解 Git 是一个分布式版本控制系统&#xff0c;其架构设计旨在高效地管理代码版本&#xff0c;支持分布式协作&#xff0c;并确保数据的完整性和安全性。 Git 的核心组件&#xff1a; 工作区&#xff08;Working Directory&#xff09;&#xff1a; 工作区是你在本…

力扣.270. 最接近的二叉搜索树值(中序遍历思想)

文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的中序遍历) 本题的难点在于可能存在多个答案&#xff0c;并且要返回最小的那一个&#xff0c;为了解决这个问题&#xff0c;我门则要利用上二叉搜索树中序遍历为有序序列的特性&#xff0c;具体到代码中&a…

7个国内能打开的AI绘画网站!新手福音!

以下是我收集的国内能打开的AI绘画网站。 1、6pen 网址&#xff1a;https://6pen.art/ 2、文心大模型 网址&#xff1a;https://wenxin.baidu.com/moduleApi/ernieVilg 3、Draft 网址&#xff1a;https://draft.art/ai- art/drawing 4、nightcafe 网址&#xff1a;https:/…

Redis数据库篇 -- Pipeline

一. 什么是Pipeline 在传统的请求-响应模式中&#xff0c;客户端与服务器之间的通信流程如下&#xff1a; 客户端发送一个命令到服务器。服务器接收命令并执行。服务器将执行结果返回给客户端。客户端接收结果后&#xff0c;发送下一个命令 在这种传统的模式下&#xff0c;…

Baumer工业相机堡盟相机的相机传感器芯片清洁指南

Baumer工业相机堡盟相机的相机传感器芯片清洁指南 Baumer工业相机1.Baumer工业相机传感器芯片清洁工具和清洁剂2.Baumer工业相机传感器芯片清洁步骤2.1、准备步骤2.2、清洁过程1.定位清洁工具2.清洁传感器3&#xff0e;使用吹风装置 Baumer工业相机传感器芯片清洁的优势设计与结…

【OS】AUTOSAR架构下的Interrupt详解(下篇)

目录 3.代码分析 3.1中断配置代码 3.2 OS如何找到中断处理函数 3.3 Os_InitialEnableInterruptSources实现 3.4 Os_EnableInterruptSource 3.5 DisableAllInterrupts 3.5.1Os_IntSuspendCat1 3.5.2 Os_InterruptDisableAllEnter 3.5.3 Disable二类中断 3.5.4 Disable一…

ASP.NET Core中间件Markdown转换器

目录 需求 文本编码检测 Markdown→HTML 注意 实现 需求 Markdown是一种文本格式&#xff1b;不被浏览器支持&#xff1b;编写一个在服务器端把Markdown转换为HTML的中间件。我们开发的中间件是构建在ASP.NET Core内置的StaticFiles中间件之上&#xff0c;并且在它之前运…

idea 找不到或者无法加载主类

idea项目&#xff0c;之前一直是正常运行的&#xff0c;放假了之后再回来就遇到启动不了的问题。 WebApplication这个类右键运行的时候&#xff0c;也提示找不到主类。 对于这种之前运行没有问题&#xff0c;突然出问题的项目。 我的点是没有改动代码和数据的情况下项目就跑不起…

DeepSeek R1 Distill Llama 70B(免费版)API使用详解

DeepSeek R1 Distill Llama 70B&#xff08;免费版&#xff09;API使用详解 在人工智能领域&#xff0c;随着技术的不断进步&#xff0c;各种新的模型和应用如雨后春笋般涌现。今天&#xff0c;我们要为大家介绍的是OpenRouter平台上提供的DeepSeek R1 Distill Llama 70B&…

基于SpringBoot养老院平台系统功能实现六

一、前言介绍&#xff1a; 1.1 项目摘要 随着全球人口老龄化的不断加剧&#xff0c;养老服务需求日益增长。特别是在中国&#xff0c;随着经济的快速发展和人民生活水平的提高&#xff0c;老年人口数量不断增加&#xff0c;对养老服务的质量和效率提出了更高的要求。传统的养…

新能源产业的质量革命:六西格玛培训如何重塑制造竞争力

在新能源行业狂飙突进的今天&#xff0c;企业若想在全球供应链中占据高地&#xff0c;仅靠技术突破已远远不够。制造效率的毫厘之差&#xff0c;可能成为市场话语权的千里之距。某光伏巨头曾因电池片良率低于行业均值1.5%&#xff0c;导致年损失超2.3亿元——这恰恰印证了六西格…

额外题目汇总2-链表

链表 1.24. 两两交换链表中的节点 力扣题目链接(opens new window) 给定一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后的链表。 你不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交换。 思路 使用虚拟头结点会很方便&#xff…

pytest-xdist 进行多进程并发测试!

在软件开发过程中&#xff0c;测试是确保代码质量和可靠性的关键步骤。随着项目规模的扩大和复杂性的增加&#xff0c;测试用例的执行效率变得尤为重要。为了加速测试过程&#xff0c;特别是对于一些可以并行执行的测试用 例&#xff0c;pytest-xdist 提供了一种强大的工具&…

化学-基础知识一

文章目录 1、物质分类2、离子反应3、氧化还原反应4、物质的量5、电子排布式6、元素周期表 化学基础知识&#xff0c;物质分类、离子反应、氧化还原反应、物质的量、电子排布式、元素周期表 1、物质分类 物质广泛分为混合物和纯净物&#xff0c;纯净物是主要研究对象&#xff1b…

Pycharm调试Deepseek API

本文主要是使用pycharm工具测试调用DeepSeek API 1、deepseek官网注册账号 DeepSeek 2、创建API key&#xff08;注意&#xff1a;复制保存好API key&#xff0c;因为出于安全原因&#xff0c;你将无法通过 API keys 管理界面再次查看它&#xff09; 3、pycharm创建新项目和c…

Java使用aspose实现pdf转word

Java使用aspose实现pdf转word 一、下载aspose-pdf-21.6.jar包【下载地址】&#xff0c;存放目录结构如图&#xff1b;配置pom.xml。 <!--pdf to word--> <dependency><groupId>com.aspose</groupId><artifactId>aspose-pdf</artifactId>…

检索式知识库问答相关研究调研

基于信息检索的知识库问答存在以下问题 一、问题解析阶段 复杂问题解析 1.问题中包括多个实体&#xff1a;(i)使用卷积操作捕获每个词的上下文特征&#xff1b;(ii)使用大语言模型对问题进行凝练&#xff0c;保留关键信息&#xff1b;(iii)采用思维链的方式对问题进行分解&am…

Python基于Django的课堂投票系统的设计与实现【附源码】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

C++ Primer 数组

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…