2.02-外设篇-GPIO输出高低电平

ESP8266:SDK开发(源码见资料源码)

开发板购买链接:开发板购买链接

资料源码:https://gitee.com/yang456/Learn8266ForSDK.git

开发软件:https://mnifdv.cn/resource/cnblogs/Learn8266ForSDK/AiThinkerIDE_V0.5_Setup.exe

点击加入群聊【ESP8266开发交流群】:ESP8266开发交流群

淘宝上许多贩卖TCP,UDP,APP,上位机,MQTT,云服务器等基础控制教程的,但是基础的没必要拿出来贩卖!

因为过于简单,只能个人玩玩而已,感觉像是在坑小学生。故,我给大家整理好,开源出来以供大家学习使用!

 

开发板原理图

  一,LED(GPIO2)

    

  二,继电器(GPIO5)

    

  

 

 

NONOS(2.2.0)

 

NONOS(2.2.0)

NONOS(2.2.0)

 

1.设置GPIO输出高低电平

 

 

 

 

 

 

设置GPIO2输出高电平

GPIO_OUTPUT_SET(2, 1);

 

设置GPIO2输出低电平

GPIO_OUTPUT_SET(2, 0);

 

 

 

 

 

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

 

 

 

 

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输出高电平

 

 

 

 

 

如果控制有SPI功能的引脚,需要写上一句话,否则不能控制

WRITE_PERI_REG(PERIPHS_IO_MUX, 0x105);

 

 

 

 

 

 

RTOS(2.2.0)

 

RTOS(2.2.0)

RTOS(2.2.0)

 

  官方提供了两个函数

  

 

 

  

 

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);

 

 

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

 

 

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输出低电平

 

 

 

 

 

 

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值