ESP8266之SDK开发教程-第二讲

第二讲.开始使用按键点亮你的"第一个LED"

作者:电子快递哥

日期:于2020年3月18日

有态度,有温度,欢迎关注电子快递哥,转载请注明出处,

关注电子快递哥,一起学习后续教程,关注+转发,私信免费索取源码

2.1,打开乐鑫的SDK技术文档https://www.espressif.com/zh-hans/support/download/documents,

ESP8266之SDK开发教程-第二讲

2.2,我们搜索下管脚GPIO的相关设置:

ESP8266之SDK开发教程-第二讲

ESP8266之SDK开发教程-第二讲

2.3,例程使用GPIO12连接LED,GPIO13连接按键,主程序如下:

void ICACHE_FLASH_ATTR

user_init(void)

{

uint8 bz=0;

uart_init(115200, 115200);//设置串口0和串口1的波特率

PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);//选择GPIO12

GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//GPIO12为高

PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U ,FUNC_GPIO13);//选择GPIO13

GPIO_DIS_OUTPUT(GPIO_ID_PIN(13)) ; // 设置GPIO13为输入

while(1)

{

system_soft_wdt_feed();//这里我们喂下看门狗 ,不让看门狗复位

if(GPIO_INPUT_GET(GPIO_ID_PIN(13))==0x00)//读取GPIO13的值,按键按下为0

{

delay_ms(20); //延时20MS,去抖

if(GPIO_INPUT_GET(GPIO_ID_PIN(13))==0x00)

{

bz++;

if(bz==2)bz=0;

if(bz==1)GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 0); //GPIO12为低

if(bz==0)GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//GPIO12为高

while(GPIO_INPUT_GET(GPIO_ID_PIN(13))==0x00); //等待按键释放

}

}

}

}

①,GPIO 相关接⼝口位于 /ESP8266_NONOS_SDK/include/eagle_soc.h & gpio.h。

②,使⽤用示例例可参考 /ESP8266_NONOS_SDK/examples/IoT_Demo/user/user_plug.c。

2.4,编译与烧录,观察实验现象

2.4.1,每次编译工程之前记得先clear project ,再build project 编译工程,保证生成的bin文件不出错。

2.4.2,eclipse需要自己点击保存,真麻烦… 所以,提醒各位小伙伴,每次修改了文件,记得 save 保存一下。

2.4.3,实验现象按一下按键LED亮起,再按一下LED熄灭,实现了通过按键控制LED灯的亮灭,本节教程结束。


分享到:


相關文章: