[!--tag.name--]

ESP8266自学笔记(一)

标签:ESP8266   

《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.h 和 gpio16.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();

}

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

注:相关函数请阅读ESP8266 SDK说明文档。

5.点击

这里写图片描述

按钮,或者工程右击选择build project(在编译前最好先执行一下clean project命令)

这里写图片描述

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

以下是编译成功提示

这里写图片描述

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

6.程序的下载

打开ESP8266的烧写软件。(烧写工具在烧写软件下载地址可以下载到)

这里写图片描述

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

参考资料

[1]. ESP8266 SDK 入门指南

[2]. ESP8266技术参考

[3]. ESP8266Non-OS SDK API参考