ESP8266学习笔记(一)

前言

ESP8266EX 是一个完整且自成体系的wi-fi解决方案,能独立运行,也可以作为从机搭载于其他主机MCU运行。

点亮第一盏LED

目标

1.完成开发环境的配置。

2.完成点亮LED程序的编写。

配置开发环境

1.安装CYGWIN

方式一、从cygwin的官网下载在线安装包。

方式二、网上下载cygwin的离线安装包。

方式三、在安信可的官网上可以找到百度云网盘的字样,
这里写图片描述

点进去之后可以看到安信可ESP系列新IDE文件夹
ESP8266学习笔记(一)_第1张图片
只是想下载cygwin的话,就下载 Cygwin.exe 就好了,如果想下载带IDE的话就下载 Cygwin_Eclipse_IDE.exe(推荐!) 。

下载的文件本质上是一个.exe格式的压缩包,所以在下载完成后解压缩就好了,解压路径最好不要出现中文、空格。

解压完之后就是这个样子
ESP8266学习笔记(一)_第2张图片

2.配置系统环境变量

1.在我的电脑右键点击属性,找到高级系统设置。
2.点击高级系统设置,在弹出的界面中找到环境变量。
3.点击环境变量,新建变量名为CYGWIN_HOME,变量值为D:\cygwin,点击确定。
ESP8266学习笔记(一)_第3张图片
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
ESP8266学习笔记(一)_第4张图片

2.找到 [最新发布]ESP8266 SDK
ESP8266学习笔记(一)_第5张图片

3.选择合适的SDK进行下载

Non-OS SDK是常规的SDK

Free RTOS SDK是带操作系统的SDK
ESP8266学习笔记(一)_第6张图片

4.开发环境的搭建

1.解压下载好的SDK(我下载的是常规的1.5.4 SDK版本)。
目录结构如下:
ESP8266学习笔记(一)_第7张图片

打开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。
ESP8266学习笔记(一)_第8张图片

默认情况下打开eclipse会提示选择默认工作区
ESP8266学习笔记(一)_第9张图片
一般设定好工作区的目录,勾上use this as the default and do not ask again,点击OK就好了。

界面显得还是比较简洁的。
ESP8266学习笔记(一)_第10张图片

在project explorer中右击出现以下画面,单击import
ESP8266学习笔记(一)_第11张图片

选择existing code as makefile project,点击next。
ESP8266学习笔记(一)_第12张图片

在existing code location项中点击browse选择app所在的目录。

project name项可以自由命名(在规则许可内)。

toolchain for indexer settings 选择 cygwin gcc项。

点击finish。
ESP8266学习笔记(一)_第13张图片

在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命令)
ESP8266学习笔记(一)_第14张图片

当然也可以使用快捷键“ctrl+b”来执行编译命令。

以下是编译成功提示
ESP8266学习笔记(一)_第15张图片

编译失败的话会提示错误信息。

6.程序的下载

打开ESP8266的烧写软件。(烧写工具在烧写软件下载地址可以下载到)
ESP8266学习笔记(一)_第16张图片

下载完成后就可以看到LED灯在闪烁了。

参考资料

[1]. ESP8266 SDK 入门指南
[2]. ESP8266技术参考
[3]. ESP8266Non-OS SDK API参考

你可能感兴趣的:(ESP8266学习)