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燈的亮滅,本節教程結束。


分享到:


相關文章: