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
  • Dream_cc
  • Dream_cc
  • 2017年08月14日 22:54
  • 1630

Esp8266学习之旅② 利用GPIO开始使用按钮点亮你的“第一盏灯”。(附带demo)

欢迎来到物联网智能家居顶量级别wifi模块Esp8266学习之旅。 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时...
  • xh870189248
  • xh870189248
  • 2017年09月28日 18:04
  • 1908

<WIFI>ESP8266定时器的使用(基于SDK)

网上挺多ESP8266的教程,对定时器的讲解比较细。咱们就简单粗暴一些吧。直接看代码吧。(好吧,这段时间博客显示不了图片,我就不截图了,直接复制代码吧) os_timer_disarm(&Send_t...
  • Stephen_Lu_Fahai
  • Stephen_Lu_Fahai
  • 2016年05月11日 23:12
  • 5175

ESP8266 SDK 编程入门 03-程序篇

上一篇基础篇简单介绍了ESP8266模块固件刷写的方法,我觉得写的还是比较清楚的,大家应该都能看明白,既然已经知道怎么刷写固件了,那这一节就来学学SKD开发的一些基础,所谓“师傅领进门,修行靠各人”,...
  • jackhuang2015
  • jackhuang2015
  • 2016年03月10日 22:36
  • 28046

Esp8266学习之旅③ 利用 " 软件定时器 "或“硬件定时器” 定时0.5秒闪烁点亮一盏LED。(附带demo)

本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。 1、 Esp8266之 搭建开发环境,开始一个“hellow wo...
  • xh870189248
  • xh870189248
  • 2017年10月03日 17:00
  • 1544

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

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

ESP8266 Mesh发包流程介绍

ESP8266 Mesh发包流程介绍
  • qq_15647227
  • qq_15647227
  • 2016年09月01日 22:32
  • 4117

esp8266 mesh程序,亲测可用

  • 2017年09月20日 10:03
  • 3.87MB
  • 下载

ESP8266 SDK开发之数据读写

ESP8266 SDK开发之数据读写
  • jackhuang2015
  • jackhuang2015
  • 2016年12月20日 23:02
  • 3280

ESP8266-WIFI之例程篇

1、ESP8266_drive驱动类文件1)esp8266_drive.h#ifndef _esp8266_drive_H #define _esp8266_drive_H#include "syst...
  • IT_BOY__
  • IT_BOY__
  • 2017年05月14日 14:31
  • 2552
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ESP8266学习笔记(一)
举报原因:
原因补充:

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