ESP8266-12F學習之點亮一個LED燈


     點亮一個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

 

         

          

 

 

 

 

      

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM