點亮一個LED燈
上一篇文章,我們介紹了怎么在Windows系統下搭建一個SEP8266的開發環境,那在這一篇文章中我們要開始來編寫一個硬件入門經典小程序,如何點亮一個LED小燈,同時在這一章中我們還會介紹怎么樣將編譯好的程序下載到ESP8266-12f中。
第一步:下載官方demo框架,從http://wiki.ai-thinker.com/esp8266/examples 下載,當然,也可以在文章最后下載我的附件,下載完后,我們將文件添加到SDK中進行編譯,步驟如圖:
點開C/C++分支,並選中Existing Code as Makefile Project:
去除C++支持,選中 Cygwin GCC,點擊Browser,選中我們解壓后所在的目錄。點擊finish。
到這里,應該就成功的將我們的工程文件添加到SKD當中了,紅色框內為所添加的文件。
接下來開始編寫程序部分,這里我們涉及到ESP8266-12F的IO口的控制,控制方法其實和STM32庫函數類似比如
-
先選定一個GPIO管腳。用 PIN_FUNC_SELECT(PIN_NAME, FUNC) 函數。比如我選定GPIO14這個管腳,則這樣寫:PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);
-
如果你設置這個管腳為高電平,則這樣寫:GPIO_OUTPUT_SET(GPIO_ID_PIN(14), 1);
如果你設置其為讀取狀態功能則,這樣初始化: GPIO_DIS_OUTPUT(GPIO_ID_PIN(14)) ;
具體請參考;樂鑫官方手冊,這個我會放到文章底部的附件中。
開始編譯工程前,我們要先修改程序,在其的 app ->user –> user_main.c 下的修改如下,讓燈間斷亮滅。
1 /********************************************************************************************* 2 程序名: 控制LED(讀取GPIO口的狀態) 3 編寫人: 4 編寫時間: 5 硬件支持: 6 接口說明: 7 修改日志: 8 NO.1- 9 /********************************************************************************************* 10 說明: 11 12 /*********************************************************************************************/ 13 #include "driver/uart.h" //串口0需要的頭文件 14 #include "osapi.h" //串口1需要的頭文件 15 #include "user_interface.h" //WIFI連接需要的頭文件 16 #include "gpio.h" //端口控制需要的頭文件 17 18 void delay_ms(uint16 x) 19 { 20 for(;x>0;x--) 21 { 22 os_delay_us(1000); 23 } 24 } 25 26 void user_init()//初始化 27 { 28 29 30 uart_init(57600, 57600);//設置串口0和串口1的波特率 31 32 PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);//選擇GPIO14 33 GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//GPIO12為低 34 35 while(1) 36 { 37 system_soft_wdt_feed();//這里我們喂下看門狗 ,不讓看門狗復位 38 GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 0); //GPIO14為低 39 delay_ms(1000); 40 GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1); //GPIO14為高 41 delay_ms(1000); 42 43 } 44 45 46 47 } 48 49 void user_rf_pre_init() 50 { 51 52 }
接下來是編譯,注意這時候避免誤報錯誤,直接把 Problems 欄目關掉,解釋說,這個Problems 欄目報的錯誤不准確,只有Console 欄目下的輸出為准,所以建議大家把 Problems 欄目關閉。
-
之后建議大家每次編譯項目前先進行 clear project,再 build project ,這樣就保證了正確的代碼可以完全被編譯,如果正確的代碼沒有clear project就直接build project ,可能會報錯。
-
Build Project :編譯項目 ; Clean Project:清理項目,可以清理下緩存。
選中工程文件,單擊右鍵
編譯好后,出現如下區域情況,就說明編譯成功了。
接下來注意了,敲黑板,划重點!!!我們要開始將編譯好的程序燒錄到ESP8266-12F中,下面的方法只適用於ESP8266-12F,別的型號不保證能成功哦,如果你不確定你的芯片型號,可以將芯片反過來看反面的絲印
下載燒錄工具:http://www.espressif.com/zh-hans/support/download/other-tools,請到這里下載,安裝好后界面如下:
根據上面的編譯,我們看到了如下燒錄信息:
boot.bin------------>0x00000
user1.4096.new.6.bin--->0x01000
這個就是我們燒錄時需要填入的地址,同時還提示我們,生成了user1.4096.new.6.bin 文件在 工程文件中的bin/upgrade目錄下,我們再燒錄軟件中將路徑依次填入如下:
點擊start開始下載,無響應時點擊復位按鈕,會看到正在下載,下載完成后記得將GPIO0引腳與GND斷開,再按下復位鍵,程序就能運行了。
PS:忘記了,LED燈接的IO口是GPIO12,這里就不貼圖了哈!
沒找到插入附件的地方在哪,這里附上百度雲鏈接:鏈接:https://pan.baidu.com/s/1nuXvtBN 密碼:iszz