ESP8266學習筆記(一)

前言

ESP8266EX 是一個完整且自成體系的wi-fi解決方案,能獨立運行,也可以作爲從機搭載於其他主機MCU運行。

點亮第一盞LED

目標

1.完成開發環境的配置。

2.完成點亮LED程序的編寫。

配置開發環境

1.安裝CYGWIN

方式一、從cygwin的官網下載在線安裝包。

方式二、網上下載cygwin的離線安裝包。

方式三、在安信可的官網上可以找到百度雲網盤的字樣,
這裏寫圖片描述

點進去之後可以看到安信可ESP系列新IDE文件夾
這裏寫圖片描述
只是想下載cygwin的話,就下載 Cygwin.exe 就好了,如果想下載帶IDE的話就下載 Cygwin_Eclipse_IDE.exe(推薦!) 。

下載的文件本質上是一個.exe格式的壓縮包,所以在下載完成後解壓縮就好了,解壓路徑最好不要出現中文、空格。

解壓完之後就是這個樣子
這裏寫圖片描述

2.配置系統環境變量

1.在我的電腦右鍵點擊屬性,找到高級系統設置。
2.點擊高級系統設置,在彈出的界面中找到環境變量。
3.點擊環境變量,新建變量名爲CYGWIN_HOME,變量值爲D:\cygwin,點擊確定。
這裏寫圖片描述
4.找到path系統變量,在變量值處添加(爲了方便未來編譯器的使用)

%CYGWIN_HOME%\bin;(可以不添加)

%CYGWIN_HOME%\opt\xtensa-lx106-elf\bin;(可以不添加)

%CYGWIN_HOME%\opt\xtensa-esp108-elf\bin;(可以不添加)

5.點擊確定,完成更改。

3.SDK的下載

1.進入樂鑫論壇(http://bbs.espressif.com/),找到如下頁面,點擊SDKs
這裏寫圖片描述

2.找到 [最新發布]ESP8266 SDK
這裏寫圖片描述

3.選擇合適的SDK進行下載

Non-OS SDK是常規的SDK

Free RTOS SDK是帶操作系統的SDK
這裏寫圖片描述

4.開發環境的搭建

1.解壓下載好的SDK(我下載的是常規的1.5.4 SDK版本)。
目錄結構如下:
這裏寫圖片描述

打開SDK根目錄中的examples文件夾內的IoT_Demo文件夾,複製裏面的內容到SDK根目錄中的APP文件夾。

複製SDK根目錄的driver_lib文件夾內的driver文件夾,到SDK根目錄的 APP 文件夾,選擇覆蓋。

複製SDK根目錄的 driver_lib 文件夾內的 include 文件夾內的 driver 內的文件到到SDK根目錄的 APP 文件夾內的 include 文件夾中。

複製SDK根目錄的 include文件夾到SDK根目錄的 APP 文件夾。

2.IDE的使用

打開解壓目錄,打開ESP8266IDE.exe,確定好安裝目錄後點擊確定就會自動打開eclipse。
這裏寫圖片描述

默認情況下打開eclipse會提示選擇默認工作區
這裏寫圖片描述
一般設定好工作區的目錄,勾上use this as the default and do not ask again,點擊OK就好了。

界面顯得還是比較簡潔的。
這裏寫圖片描述

在project explorer中右擊出現以下畫面,單擊import
這裏寫圖片描述

選擇existing code as makefile project,點擊next。
這裏寫圖片描述

在existing code location項中點擊browse選擇app所在的目錄。

project name項可以自由命名(在規則許可內)。

toolchain for indexer settings 選擇 cygwin gcc項。

點擊finish。
這裏寫圖片描述

在eclipse中打開 user 目錄的 user_main.c,只留下user_init(相當於main)這個函數和頭文件。

加入 c_type.hgpio16.h

4.程序的編寫

#include "ets_sys.h"
#include "osapi.h"

#include "user_interface.h"

#include "user_devicefind.h"
#include "user_webserver.h"

#include "gpio16.h"
#include "gpio.h"

#include "c_types.h"

#if ESP_PLATFORM
#include "user_esp_platform.h"
#endif

/** 定時器結構體 */
static os_timer_t os_timer;

/** LED操作命令 */
void Led_Cmd( bool status )
{
    if ( status == true )
    {
        gpio16_output_set( 0 );
    }
    else
    {
        gpio16_output_set( 1 );
    }
}

/** LED任務運行程序 */
void Led_Task_Run( void )
{
    static bool status = false;

    if ( status == true )
    {
        status = false;
    }
    else
    {
        status = true;
    }
    Led_Cmd( status );
}

/** LED模塊初始化程序 */
void Led_Init( void )
{
    gpio16_output_conf();
    Led_Cmd( false );

    /** 關閉該定時器 */
    os_timer_disarm( &os_timer );
    /** 配置該定時器回調函數 */
    os_timer_setfn( &os_timer, (ETSTimerFunc *) ( Led_Task_Run ), NULL );
    /** 啓動該定時器 */
    os_timer_arm( &os_timer, 500, true );
}

/** 初始化程序 */
void user_init(void)
{
    Led_Init();
}

注:相關函數請閱讀ESP8266 SDK說明文檔。

5.點擊 這裏寫圖片描述按鈕,或者工程右擊選擇build project(在編譯前最好先執行一下clean project命令)
這裏寫圖片描述

當然也可以使用快捷鍵“ctrl+b”來執行編譯命令。

以下是編譯成功提示
這裏寫圖片描述

編譯失敗的話會提示錯誤信息。

6.程序的下載

打開ESP8266的燒寫軟件。(燒寫工具在燒寫軟件下載地址可以下載到)
這裏寫圖片描述

下載完成後就可以看到LED燈在閃爍了。

參考資料

[1]. ESP8266 SDK 入門指南
[2]. ESP8266技術參考
[3]. ESP8266Non-OS SDK API參考

發佈了44 篇原創文章 · 獲贊 54 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章