第二讲.开始使用按键点亮你的"第一个LED"
作者:电子快递哥
日期:于2020年3月18日
有态度,有温度,欢迎关注电子快递哥,转载请注明出处,
关注电子快递哥,一起学习后续教程,关注+转发,私信免费索取源码
2.1,打开乐鑫的SDK技术文档https://www.espressif.com/zh-hans/support/download/documents,
2.2,我们搜索下管脚GPIO的相关设置:
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灯的亮灭,本节教程结束。