窥探ESP8266GPIO

本文详细介绍了ESP8266开发板IO口的使用方法,通过实例演示了如何利用IO13作为按键输入,IO12作为指示灯输出,实现按键控制指示灯亮灭的功能。文章包含代码实现及硬件配置说明。

一:简述

在这次,主要是记录一下自己对8266IO口的使用(代码为nonos版本)。

硬件:ESP-LAUNCHER开发板(使用IO13为按键输入,IO12为指示灯输出)

要求:开发板上电,指示灯不亮;按下按键,指示灯亮;放开手,指示灯不亮。

二:查看文档

文档截图:

 

选定GPIO管脚(以GPIO12为例):PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12)

设定该管脚为输出且输出高电平:GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1)

设定该管脚为输入:GPIO_DIS_OUTPUT(GPIO_ID_PIN(12))

三:程序

#include "driver/uart.h"  //串口0需要的头文件
#include "osapi.h"  //串口1需要的头文件
#include "gpio.h"  //端口控制需要的头文件

void delay(uint32 Delay_Time)//毫秒延时函数,不可延时太久
{
	for(;Delay_Time > 0;Delay_Time--)
	{
		os_delay_us(1000);
	}
}

void  user_init()//初始化
{
    uart_init(115200, 115200);//设置串口0和串口1的波特率

    //IO口练习
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);//选择指示灯IO口
    GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//默认指示灯不亮
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13);//选择按键IO口
    GPIO_DIS_OUTPUT(GPIO_ID_PIN(13));//设置IO13为输入
    while(1)
    {
    	if(GPIO_INPUT_GET(GPIO_ID_PIN(13)) == 0)
    	{
    		delay(10);//延时去抖
    		if(GPIO_INPUT_GET(GPIO_ID_PIN(13)) == 0)
    		{
    			GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 0);
    		}
    	}

    }
}

void user_rf_pre_init()
{

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值