前言

  官方提供了以下函数检测引脚输入状态

    

  检测GPIO5

  if( GPIO_INPUT_GET(5) == 0 ) GPIO5当前为低电平

  if( GPIO_INPUT_GET(5) == 1 ) GPIO5当前为高电平

  

检测输入的第一种方式

  在引脚为输出的状态下,检测引脚输入状态

  注:该模式应用于检测引脚输出的高低电平状态.

  PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U , FUNC_GPIO5);

  GPIO_OUTPUT_SET(5, 1);//设置GPIO5输出高电平(控制继电器吸合)

  if(GPIO_INPUT_GET(5) == 1)
  {
    printf("\r\n 继电器引脚输出高电平 \r\n");
  }

  

    

  

  另外:如果某个引脚控制传感器,传感器本身引脚有很强的拉低能力,也可以用此模式检测

  列如:开发板的GPIO0外接的按钮

  

  如想检测其是否按下:

  PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U , FUNC_GPIO0);

  GPIO_OUTPUT_SET(0, 1);//设置GPIO0输出高电平

  if(GPIO_INPUT_GET(0) == 0)
  {
    //按钮按下
  }

  原因:

  即使控制引脚输出了高电平,当按下按钮的时候,引脚接地,引脚强制被拉低.

  注意:如果所接传感器的输出能力不强,则需要看下面第二种方式

检测输入的第二种方式

  补充一个知识点

  设置引脚输入上拉 PIN_PULLUP_EN(引脚的寄存器地址)

  

  

  检测输入的时候设置管脚为输入然后再做检测

  注:该模式主要应用于和芯片之间通信

  以下为检测GPIO0的输入

  

  

  // PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U , FUNC_GPIO0);//GPIO0作为普通IO功能(以前设置过作为普通IO,不需要重复设置)

  GPIO_DIS_OUTPUT(0);//如果以前设置过GPIO为输出,则调用此函数关闭GPIO0输出
  PIN_PULLUP_EN(PERIPHS_IO_MUX_GPIO0_U);//上拉输入

  if(GPIO_INPUT_GET(0) == 0)
  {
    //引脚被拉低
  }

  

其它

  配置多个引脚为输入

  

  GPIO_AS_INPUT(BIT2 | BIT13); //配置GPIO2,GPIO13为输入

ESP8266 SDK开发: 外设篇-GPIO输入检测的更多相关文章

  1. ESP8266 LUA脚本语言开发: 外设篇-GPIO输入检测

    咱使用 GPIO0 https://nodemcu.readthedocs.io/en/master/modules/gpio/#gpioread 第一种 GPIO设置为输出的状态下读取引脚状态 gp ...

  2. ESP8266 SDK开发: 外设篇-GPIO输出高低电平

    前言 官方提供了两个函数 GPIO_OUTPUT_SET(gpio_no, bit_value) 设置GPIO2输出高电平 GPIO_OUTPUT_SET(2, 1); 设置GPIO2输出低电平 GP ...

  3. ESP8266 LUA脚本语言开发: 外设篇-GPIO中断检测

    https://nodemcu.readthedocs.io/en/master/modules/gpio/#gpiomode 测试引脚 GPIO0 gpio.mode(,gpio.INT) func ...

  4. ESP8266 SDK开发: 外设篇-串口

    串口分布 串口切换说明 1.默认所有的数据都使用串口0输出 官方提供了函数可以选择printf利用哪一个串口输出 配置printf使用串口1打印输出,波特率115200 (注:这样配置对于调试程序很有 ...

  5. ESP8266 LUA脚本语言开发: 外设篇-GPIO输出高低电平

    前言 所有的LUA开发API参考 https://nodemcu.readthedocs.io/en/master/en/modules/gpio/ 原理图 让GPIO2输出高电平只需 gpio.mo ...

  6. esp8266 SDK开发之环境搭建

    最近在弄这个WiFi模块,发现网上SDK开发方面的资料很少,发现了一套视频教程,不过主讲人的讲课方式实在受不了.对基于SDK开发感兴趣的同学可以通过本帖在Ubuntu系统上通过Eclipes搭建开发环 ...

  7. ESP8266 SDK开发: 测试下诱人的程序

    前言 这一节测试一下诱人的程序 实现的功能,APP通过SmartConfig给Wi-Fi模块配网并绑定设备,然后通过MQTT远程控制开发板的继电器, APP显示ESP8266采集的温湿度数据. 简而言 ...

  8. ESP8266 LUA脚本语言开发: 外设篇-串口

    https://nodemcu.readthedocs.io/en/master/modules/uart/ 串口发送数据 发送一个16进制到串口 uart.write(0, 0xaa) 注: 之所以 ...

  9. ESP8266 LUA脚本语言开发: 外设篇-定时器,延时,看门狗

    https://nodemcu.readthedocs.io/en/master/modules/tmr/ local mytimer1 = tmr.create() function TimeFun ...

随机推荐

  1. 【新特性速递】树控件结构由单层 TR 改为 TR-TD-TABLE 层级嵌套

    FineUIPro/Mvc/Core的下个版本(v6.1.0),我们对树控件进行了优化,由原来的单层 TR 改为 TR-TD-TABLE 层级嵌套,从而做到表里如一. 上个版本(v6.0.0),我们对 ...

  2. 什么是IDE(集成开发环境)?

    实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,例如: 编辑器:用来编写代码,并且给代码着色,以方便阅读: 代码提示器:输入部分代码,即可提示全部代码,加速代码的编写过程: 调试器 ...

  3. nginx的6种负载均衡策略

    在服务器集群中,Nginx起到一个反向代理服务器的作用.为了避免单独一个服务器压力过大导致服务器奔溃,就需要将不同用户的请求转发给不同给不同的服务器,保证集群中的每一台服务器都能正常运作,这种机制就叫 ...

  4. 使用 jQuery.AutoComplete 让文本框自动完成

    直接贴代码了. @section headSection { <script type="text/javascript"> $(document).ready(fun ...

  5. 钉钉SDK使用。

    (1)到 https://open-doc.dingtalk.com/microapp/faquestions/vzbp02 下载SDK (2)引入 using DingTalk.Api; using ...

  6. WPF中绘图(含调用GDI+)

    private void DrawStuff() { // //if (buffer == null) //{ // buffer = new RenderTargetBitmap((int)Back ...

  7. Java向服务器上传图片

    在比较绚丽多彩的网站或者业务逻辑比较丰富的程序设计过程中,图片的相关操作时必不少的,尤其时图片的上传.还没有彻底摆脱纸质办公可能需要将纸质的文件备份上传,网站的建设可能需要上传用户头像.图片描述等等, ...

  8. spring原理之四种基本标签的解析

    四种标签 在spring的配置文件中存在四种基本的标签分别是:beans,bean,import,alias 四种标签的功能: beans:定义一个单独的应用配置(测试配置,开发配置等),在服务器部署 ...

  9. maven 学习---Maven项目模板

    Maven提供用户,使用原型的概念,不同类型的项目模板(以数字614)是一个非常大的列表. Maven帮助用户快速开始使用以下命令创建新的Java项目 mvn archetype:generate 什 ...

  10. Qt压缩和解压 zip

    zlib编译详见 https://blog.csdn.net/zhangxuechao_/article/details/85049711 下载quazip https://github.com/st ...