原创

ESP8266点亮小灯

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34988341/article/details/72972817

这里我们讲解一下ESP8266的GPIO引脚(刚开始接触ESP的时候,只是以为它是用来通信的,没想他竟然这么强大);好了,废话不多少,开始。

这里写图片描述
这个是选择我们的GPIO的管脚的状态的函数,这里我们选择的是PERIPHS_IO_MUX_MTDI_U;上拉的模式;
这里写图片描述
这里写图片描述
我们用这个函数去设置gpio是输入还是输出模式,还有是设置高低电平的,
在这里我们需要注意的是,我们不能像玩单片机一样,直接写个while死循环,然后让他运行,在这里需要我们去用定时器操作它,

这里着重讲一下定时器:
这里写图片描述
这个是设置你的定时器使能函数这里面有三个参数,一个是ETSTimer定义的结构体这里写图片描述
第二个是你要定时的时间间隔,第三个是你是否要重复定时;
这里写图片描述

这个是关掉你的定时器的函数;

这里写图片描述
这个函数是设置你的定时器的回调函数的(其实就是中断服务函数(我个人理解)第一个参数还是ETSTimer结构体,第二个就是你的回调函数(中断服务函数),第三个一般是NULL;

这里写图片描述
我们这里的设置的是2s一次点亮灯,

这里的调用定时器的步骤一般是先关掉定时器,设置回调函数,打开定时器
这里写图片描述
这里已经说的很明白了,

好了上代码,睡觉去。

/*
* user_main.c
*
* Created on: 2017年6月9日
* Author: zailushang
*/

include “c_types.h”

include “gpio.h”

include “eagle_soc.h”

include “ets_sys.h”

include “osapi.h”

ETSTimer Timer;//这个是定时器的一个结构体参数;
static uint8 Count=0;

void ICACHE_FLASH_ATTR display(void *arg)//用来作为回调的函数
{
if(Count==0)
{
gpio_output_set(BIT5|BIT2,BIT4,BIT5|BIT4|BIT2,0);
//这个函数是gpio模式的设置,这个函数在指导手册中有,大家可以去看看
//第一个参数是设置高电平的引脚,第二个是设置低电平的引脚,第三个是使能gpio为输出模式
//第四个参数是使能引脚为输入模式;
}
else if(Count==1)
{
gpio_output_set(BIT4|BIT2,BIT5,BIT5|BIT4|BIT2,0);
}
else if(Count==2)
{
gpio_output_set(BIT5|BIT4,BIT2,BIT5|BIT4|BIT2,0);
}
Count++;
if(Count==3)
Count=0;
}

void user_init()
{

PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO2);
//这个函数选择你的GPIO引脚的模式的,上拉,下拉之类的
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO5);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO4);
os_timer_disarm(&Timer);
//这个是不使能你的定时器,他的参数就是定时器的结构体的
os_timer_setfn(&Timer,display,NULL);
//这个是初始化你的定时器那个回调函数,第一个参数是你的定时器的那个结构体;
//第二个是你的回调函数,第三个是回调函数的参数,这里设置为NULL;
os_timer_arm(&Timer,2000,1);

//使能定时器;

}
void user_rf_pre_init(){}

这里要注意的是 我这个小黄版下载固件的时候,TX接TX,RX接RX

展开阅读全文

没有更多推荐了,返回首页