2 GPIO控制

ESP32的GPIO的模式,一共有输入和输出模式两类。其中输入模式:上拉输入、下拉输入、浮空输入、模拟输入;输出模式:输出模式、开漏输出(跟stm32八种输入输出模式有所不同)。库函数中控制引脚的函数如下:

1 设置数字引脚
函数原型void pinMode(uint8_t pin, uint8_t mode)
函数功能设置指定数字引脚的工作模式
返回值
参数说明pin:数字引脚编号。列如 GPIO3 : 3 mode:数字引脚的工作模式:常见有 OUTPUT 输出模式 INPUT_PULLUP 带上拉的输入模式
设计参考//将GIPO14引脚设置为输入模式 pinMode(14,OUTPUT);
2 写数字引脚
函数原型void digitalWrite(uint8_t pin, uint8_t value)
函数功能向指定的引脚输出高电平或者低电平,在写引脚之前,该引脚要设置为OUTPUT模式
返回值
参数说明pin:数字引脚编号。列如 GPIO3 : 3 mode:数字引脚的输出值: HIGH 高电平 LOW 低电平
设计参考//将GIPO14输出高电平 pinMode(14,OUTPUT); digitalWrite(14,HIGH);
3 读数字引脚
函数原型int digitalRead(uint8_t pin)
函数功能向指定的引脚的状态,在写引脚之前,该引脚要设置为INPUT模式
返回值引脚读取结果,高电平1 低电平 0
参数说明pin:数字引脚编号。 列如 GPIO3 : 3
设计参考//读取GIPO14输出电平 pinMode(14,INPUT_PULLUP); digitalRead(14)

还有两个常用的延时函数

4 毫秒级别延时函数
函数原型void delay(uint32_t ms)
函数功能毫秒级别的延时函数
返回值
参数说明ms 延时长度,单位:毫秒
设计参考//延时500ms delay(500);
5 微秒级别延时函数
函数原型void delayMicroseconds(uint32_t us)
函数功能微秒级别的延时函数
返回值
参数说明us 延时长度,单位:微秒
设计参考//延时500us delayMicroseconds(500);
4 项目

利用GPIO的输出模式,输出高、低电平,就可以实现灯光闪烁的效果,但是人眼捕捉不到这个频率的开关,所以要加上一定延时,查看ESP32-wroom原理图板载的一个蓝色LED为GPIO2。再利用按键控制LED进行闪烁一次,其按键引脚为GPIO0。

代码如下

#include <Arduino.h>/* LED进行闪烁 */
#define LED0 2
#define Key1 0
void LEDBlink(){//LED进行关闭和打开的操作,实现闪灯的效果digitalWrite(LED0,HIGH);delay(500);digitalWrite(LED0,LOW);delay(500);delayMicroseconds
}void setup() {//设置led的工作模式pinMode(LED0,OUTPUT);//设置按键引脚模式pinMode(Key1,INPUT_PULLUP);}bool GetKeyValue(){if (digitalRead(Key1)){return false;}else{return true;}
}void loop() {// put your main code here, to run repeatedly:if (GetKeyValue()){LEDBlink();}
}

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

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

相关文章

Spring AMQP的作用和用法

Spring AMQP是一个用于构建基于AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;的消息驱动的中间件框架。AMQP是一种提供高度可靠的异步消息传输协议&#xff0c;广泛用于企业级消息传递和应用程序集成。 Spring AMQP 的作用&#xff1a; 消息队列&#xff1a…

基础算法,贪心算法,贪心策略,OJ练习

文章目录 一、概念二、OJ练习2.1 区间选点2.2 区间合并2.3 区间2.4 合并果子2.5 排队接水2.6 货仓选址2.7 防晒2.8 畜栏预定2.9 雷达设备2.10 国王游戏2.11 耍杂技的牛2.12 给树染色2.13 任务2.14 能量石 三、总结 一、概念 贪心是一种在每次决策时采取当前意义下最优策略的算…

Selenium获取网页参数信息(标题、网址、网页资源)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

Python正则表达式入门指南

Python中的正则表达式是处理文本数据的强大工具&#xff0c;它可以用来搜索、匹配和替换文本中的特定模式。本指南将带你入门Python正则表达式的基础知识&#xff0c;并介绍一些常用的用法。 什么是正则表达式&#xff1f; 正则表达式&#xff08;Regular Expression&#xf…

Held-Karp算法解决旅行商问题(TSP)

Held-Karp算法是一种用于解决旅行商问题&#xff08;TSP&#xff09;的动态规划算法。它由Richard M. Karp在1972年提出&#xff0c;并且是第一个证明TSP问题具有多项式时间算法的算法。Held-Karp算法利用了TSP问题的对称性和结构&#xff0c;将问题分解为更小的子问题&#xf…

Vue详细介绍

Vue.js&#xff08;通常简称为Vue&#xff09;是一个用于构建用户界面的渐进式JavaScript框架。它由尤雨溪&#xff08;Evan You&#xff09;创建&#xff0c;并于2014年首次发布。Vue的设计目的是易于上手&#xff0c;同时也能够强大到驱动复杂的单页应用&#xff08;SPA&…

linux上使用mariadb安装mysql环境

之前都是手动安装mysql数据库&#xff0c;现在尝试下在线安装&#xff0c;为后面的项目部署做准备&#xff0c;突然发现使用mariadb安装mysql环境真的超级简单。 1.使用mariadb安装mysql 安装服务端&#xff1a; yum install mariadb-server -y 安装客户端&#xff1a; yum i…

数字孪生引擎国产信创环境适配靠谱么?

近期我们组织了一次国产化环境适配以及产品国产化产品替换的交流&#xff0c;虽然从属于不同的业务条线&#xff0c;但是在过去一段时间多多少少都承受不同程度的信创压力&#xff0c;尤其是自然资源业务方面&#xff0c;由于自然资源大多数的业务是属于强GIS的范畴&#xff0c…

docker容器技术篇:rancher管理平台部署kubernetes集群

rancher管理平台部署kubernetes集群 Rancher 是一个 Kubernetes 管理工具&#xff0c;让你能在任何地方和任何提供商上部署和运行集群。 Rancher 可以创建来自 Kubernetes 托管服务提供商的集群&#xff0c;创建节点并安装 Kubernetes&#xff0c;或者导入在任何地方运行的现…

【微服务】springcloud整合dubbo3使用nacos作为注册中心

目录 一、前言 二、springboot版本升级带来的问题 2.1 springboot为什么需要升级版本

GEE数据下载——1984-2022年指定区域的逐月地表水数据批量下载(JRC Monthly Water History, v1.4)

简介 JRC Monthly Water History, v1.4 JRC Monthly Water Recurrence, v1.4 以前的数据是JRC/GSW1_3/MonthlyHistory版本为1.3,现在的数据是JRC/GSW1_4/MonthlyHistory 1.4版本,GEE在数据中进行了更新。所以我们使用新的数据进行下载。JRC Monthly Water Recurrence, v1.…

[优选算法]------滑动窗⼝——209. 长度最小的子数组

目录 1.题目 1.解法⼀&#xff08;暴⼒求解&#xff09;&#xff08;会超时&#xff09;&#xff1a; 2.解法⼆&#xff08;滑动窗⼝&#xff09;&#xff1a; 1.算法思路&#xff1a; 2.手撕图解 3.代码实现 1.C 2.C语言 1.题目 209. 长度最小的子数组 给定一个含有 n…

AI绘画已如此厉害,为何我们仍需学习绘画?

在这个AI技术日新月异的时代&#xff0c;AI绘画能力的大幅提升已经不是什么新鲜事。它们以惊人的速度和惊人的精细度完成作品&#xff0c;让不少人感叹&#xff1a;“这是不是意味着&#xff0c;未来绘画将完全由AI接管&#xff0c;人类的创作将变得无足轻重&#xff1f;”在这…

C++笔试强训day18

目录 1.压缩字符串 2.chika和蜜柑 3.01背包 1.压缩字符串 链接 注意细节&#xff1a; 1.数量为一个时不用输出个数 2.当数量超过 9 时&#xff0c;需要逐个拿出 n 的位数&#xff0c;如153次&#xff0c;需要拿出1、5、3三个数 详细代码&#xff1a; class Solution { publ…

二叉树进阶 --- 中

目录 1. find 的递归实现 2. insert 的递归实现 3. erase 的递归实现 3.1. 被删除的节点右孩子为空 3.2. 被删除的节点左孩子为空 3.3. 被删除的节点左右孩子都不为空 4. 析构函数的实现 5. copy constructor的实现 6. 赋值运算符重载 7. 搜索二叉树的完整实现 1. fi…

【嵌入式开发 Linux 常用命令系列 7.5 -- awk 过滤指定列的字符串】

文章目录 背景 背景 问题&#xff1a; 以逗号为分隔符从test_data.h的第27409行开始找出第2列不为0x00000000的行。 为了寻找从test_data.h文件的第27409行开始&#xff0c;第2列不为0x00000000的行&#xff08;假设字段是以逗号分隔的&#xff09;&#xff0c;我们可以使用a…

树的基本介绍

引入 定义 表示 相关概念 结点&#xff1a;数据元素与指向分支的指针两部分组成 树的深度&#xff1a;树中结点的最大层次 将树A结点(根结点)去掉&#xff0c;树A就变成了森林 区别 实现

再谈毕业论文设计投机取巧之IVR自动语音服务系统设计(信息与通信工程A+其实不难)

目录 举个IVR例子格局打开&#xff0c;万物皆能IVR IVR系统其实可盐可甜。还能可圈可点。 戎马一生&#xff0c;归来依然IVR。 举个IVR例子 以下是IVR系统的一个例子。 当您拨打电话进入IVR系统。 首先检验是否为工作时间。 如是&#xff0c;您将被送入ivr-lang阶段&#xff0…

管道液位传感器可以应用在哪些领域

管道液位传感器是一种利用光学原理来检测水管液位的传感器&#xff0c;其工作原理基于光线在水和空气中折射率不同的特性。通过光电管道传感器&#xff0c;可以有效解决传统机械式传感器存在的低精度、卡死失效等问题&#xff0c;同时也避免了电容式传感器因感度衰减而导致的不…

【Linux笔记】 基础指令(二)

风住尘香花已尽 日晚倦梳头 重命名、剪切指令 -- mv 简介&#xff1a; mv 命令是 move 的缩写&#xff0c;可以用来移动文件或者将文件改名&#xff0c;是 Linux 系统下常用的命令&#xff0c;经常用来备份文件或者目录 语法&#xff1a; mv [选项] 源文件或目录 目标文件或目录…