ESP8266 SDK开发: 外设篇-GPIO输出高低电平
前言
官方提供了两个函数

GPIO_OUTPUT_SET(gpio_no, bit_value)
设置GPIO2输出高电平
GPIO_OUTPUT_SET(2, 1);
设置GPIO2输出低电平
GPIO_OUTPUT_SET(2, 0);
GPIO_OUTPUT(gpio_bits, bit_value)
官方提供的一次性设置多个引脚函数
设置GPIO2和GPIO5输出高电平
GPIO_OUTPUT(BIT2 | BIT5, 1);
设置GPIO2和GPIO5输出低电平
GPIO_OUTPUT(BIT2 | BIT5, 0);
开发板原理图
一,LED(GPIO2)

二,继电器(GPIO5)

不过正常流程是先设置这个引脚的功能

PIN_FUNC_SELECT(IO口的寄存器地址 , 功能)
举例1:配置 GPIO2作为普通IO
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_GPIO2);
举例2:配置 GPIO2作为串口功能
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_UART1_TXD_BK );
说一下: FUNC_UART1_TXD_BK 这个我具体也不知道是什么意思,只知道可能是作为串口1的TX输出
举例3:配置 GPIO5作为普通IO功能
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U, FUNC_GPIO5 );
注: 这一个是默认的功能

注:在配置完PIN_FUNC_SELECT 以后,当前引脚为高阻态,既不是高电平也不是低电平.
测试(GPIO2输出高电平点亮LED)
#include "gpio.h"
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_GPIO2);
GPIO_OUTPUT_SET(2, 1);//设置GPIO2输出高电平


测试(GPIO2输出低电平,GPIO5输出高电平控制继电器吸合)
#include "gpio.h"
GPIO_OUTPUT_SET(2, 0);//设置GPIO2输出低电平
GPIO_OUTPUT_SET(5, 1);//设置GPIO5输出高电平


测试(GPIO2输出低电平,GPIO5输出低电平)
#include "gpio.h"
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_GPIO2);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U , FUNC_GPIO5);
GPIO_OUTPUT(BIT2 | BIT5, 0);//设置GPIO2和GPIO5输出低电平


ESP8266 SDK开发: 外设篇-GPIO输出高低电平的更多相关文章
- ESP8266 LUA脚本语言开发: 外设篇-GPIO输出高低电平
前言 所有的LUA开发API参考 https://nodemcu.readthedocs.io/en/master/en/modules/gpio/ 原理图 让GPIO2输出高电平只需 gpio.mo ...
- ESP8266 SDK开发: 外设篇-GPIO输入检测
前言 官方提供了以下函数检测引脚输入状态 检测GPIO5 if( GPIO_INPUT_GET(5) == 0 ) GPIO5当前为低电平 if( GPIO_INPUT_GET(5) == 1 ) G ...
- ESP8266 SDK开发: 外设篇-串口
串口分布 串口切换说明 1.默认所有的数据都使用串口0输出 官方提供了函数可以选择printf利用哪一个串口输出 配置printf使用串口1打印输出,波特率115200 (注:这样配置对于调试程序很有 ...
- ESP8266 LUA脚本语言开发: 外设篇-GPIO输入检测
咱使用 GPIO0 https://nodemcu.readthedocs.io/en/master/modules/gpio/#gpioread 第一种 GPIO设置为输出的状态下读取引脚状态 gp ...
- ESP8266 LUA脚本语言开发: 外设篇-GPIO中断检测
https://nodemcu.readthedocs.io/en/master/modules/gpio/#gpiomode 测试引脚 GPIO0 gpio.mode(,gpio.INT) func ...
- esp8266 SDK开发之环境搭建
最近在弄这个WiFi模块,发现网上SDK开发方面的资料很少,发现了一套视频教程,不过主讲人的讲课方式实在受不了.对基于SDK开发感兴趣的同学可以通过本帖在Ubuntu系统上通过Eclipes搭建开发环 ...
- ESP8266 SDK开发: 测试下诱人的程序
前言 这一节测试一下诱人的程序 实现的功能,APP通过SmartConfig给Wi-Fi模块配网并绑定设备,然后通过MQTT远程控制开发板的继电器, APP显示ESP8266采集的温湿度数据. 简而言 ...
- ESP8266 LUA脚本语言开发: 外设篇-串口
https://nodemcu.readthedocs.io/en/master/modules/uart/ 串口发送数据 发送一个16进制到串口 uart.write(0, 0xaa) 注: 之所以 ...
- ESP8266 LUA脚本语言开发: 外设篇-定时器,延时,看门狗
https://nodemcu.readthedocs.io/en/master/modules/tmr/ local mytimer1 = tmr.create() function TimeFun ...
随机推荐
- vue 使用localstorage实现面包屑
mutation.js代码: changeRoute(state, val) { let routeList = state.routeList; let isFind = false; let fi ...
- Cntlm 配置上网代理
下载安装Cntlm之后.仅仅须要改动cntlm.ini文件,提供身份认证必要的信息,然后以服务的方式启动cntlm就能够了. 在cntlm.ini中有例如以下几个重要的配置是可能须要改动的: User ...
- 应用层内存溢出/越界/重复释放等问题检查工具(ASan)
https://github.com/google/sanitizers/wiki https://github.com/google/sanitizers/wiki/AddressSanitizer ...
- border和outline的区别
如果有一个需求,给一个元素增加一条边框,想必大家会习惯且娴熟的使用border来实现,我也是这样 但其实outline也能达到同样的效果,并且在有些场景下会更适用,比如下面的demo 使用bord ...
- Zabbix图表中文乱码(包含Docker安装乱码)
目录 Zabbix 4.0 版本 Zabbix 3.0 版本 Zabbix 4.0 Docker 版本 图表乱码问题解决 文章github 地址: 点我 最近在看 Zabbix 4.0 版本的官方文档 ...
- 钉钉企业内部H5微应用开发
企业内部H5微应用开发 分为 服务端API和前端API的开发,主要涉及到进入应用免登流程和JSAPI鉴权. JSAPI鉴权开发步骤: 1.创建H5微应用 登入钉钉开放平台(https://open-d ...
- IOC : Unity 配置和使用
原文出自:IOC : Unity 配置和使用 之前Terry Lee 已经介绍过Unity的简单使用了,不过那篇文章是针对旧版本的,现在的版本1.2版略有不同. 我下载了Unity并做了一个简单的测试 ...
- Qt导航栏 QListWidget
使用Qt Designer 使用QListWidget控件 设置样式 QListWidget::item { min-height: 30px; /*设置item高度*/ border-style: ...
- 个人项目(WC.exe)(java)(基于图形界面)
一.Github项目地址:https://github.com/Leungdc/ENhomework 二.PSP: PSP2.1 Personal Software Process Stages 预估 ...
- select子句
1.order by order by 字段1 升序或者降序,字段2 升序或者降序(dsc) 默认 升序(asc) 注意:如果是分组,则应该使用对分组字段进行排序的groupby语法 group by ...