第二講.開始使用按鍵點亮你的"第一個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燈的亮滅,本節教程結束。