ESP8266学习笔记(一)

原创 2016年06月06日 10:11:50

前言

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参考

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ESP8266 SDK开发篇(五)——GPIO

ESP8266 NONOS_SDK开发篇(五)——GPIO

发现ESP-NOW之旅——用ESP8266做灯控开关

我是一名从事智能照明的工程师,今年智能照明特别火爆,远超出我的想象。而且有量就压价,客户都不是省油的灯,所以设计也不能大手大脚的,新上手的ESP8266便宜好用,过我手的就有不少项目。我在“2C-ES...
  • eezata
  • eezata
  • 2015年11月12日 17:11
  • 5132

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

ESP8266 WiFi串口模块的学习与使用(一)

ESP8266 wifi模块的学习与实验

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

ESP8266模块使用完整教程

在我入门ESP8266小黄板的过程中,过程是艰难的,因为网络上的资料太多太乱,官网上的资料不算太完备,而在技术交流群里面的就更乱了,所以想按自己学习所总结到的经验来分享给大家。资源链接:http://...

ESP8266基本介紹及心得

緣起: 在高職第一次接觸的MCU不是8051(據說在某年課綱已經把8051換成Arduino了),而是Arduino,先來說說Arduino是什麼吧! Arduino是一款開放原始碼(Open...

【ESP8266】在ESP8266上使用JavaScript语言开发

博主不知在哪听说ESP8266支持很多种语言开发的消息,其中包括原生的C语言、Python(MircoPython)、NodeMCU的Lua、JavaScript等等。MircoPython,前面有一...

关于ESP8266使用总结

2016/1/20 首先,该模块使用了AT指令进行操作,我们要做的,就是将需要的AT指令,以字符串的形式发给模块,即可实现相应的功能。 1.      wifi模块ESP8266的默认波特率是11...

ESP8266 SDK 编程入门 03-程序篇

上一篇基础篇简单介绍了ESP8266模块固件刷写的方法,我觉得写的还是比较清楚的,大家应该都能看明白,既然已经知道怎么刷写固件了,那这一节就来学学SKD开发的一些基础,所谓“师傅领进门,修行靠各人”,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ESP8266学习笔记(一)
举报原因:
原因补充:

(最多只允许输入30个字)