ESP8266EX 是一个完整且自成体系的wi-fi解决方案,能独立运行,也可以作为从机搭载于其他主机MCU运行。
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。
3.选择合适的SDK进行下载
Non-OS 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项。
在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();
}
注:相关函数请阅读ESP8266 SDK说明文档。
5.点击 按钮,或者工程右击选择build project(在编译前最好先执行一下clean project命令)
当然也可以使用快捷键“ctrl+b”来执行编译命令。
编译失败的话会提示错误信息。
6.程序的下载
打开ESP8266的烧写软件。(烧写工具在烧写软件下载地址可以下载到)
下载完成后就可以看到LED灯在闪烁了。
[1]. ESP8266 SDK 入门指南
[2]. ESP8266技术参考
[3]. ESP8266Non-OS SDK API参考