三木社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 772|回复: 0
打印 上一主题 下一主题

基于ESP8266的点灯教程

[复制链接]

1657

主题

1684

帖子

5684

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5684
跳转到指定楼层
楼主
发表于 2019-1-10 15:06:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                        基于ESP8266的点灯教程            


简介ESP8266Espressif’s ESP8266EX delivers highly integrated Wi-Fi SoC solution to meet users’ continuous demands for efficient power usage, compact design and reliable performance in the Internet of Things industry.
官方网站介绍:
http://espressif.com/en/products/hardware/esp8266ex/overviewESP8285ESP8285 is the ESP8266 chip embedded with 1 MByte flash memory specially designed for wearable devices.
官方网站介绍:
http://www.espressif.com/en/medi ... le-devicesDatasheet下载:
http://www.espressif.com/en/supp ... ESP8285%20DatasheetESP8285与ESP8266的差异由于ESP8285等价于ESP8266 加上 一片1MB Flash,因此 ESP8285与ESP8266使用的是同一套SDK,即ESP8266的SDK。ESP8285相比于ESP8266有如下差异:
  • ESP8285内部集成1MB Flash,DOUT模式。ESP8266则需要外接Flash;
  • ESP8285比ESP8266额外多出GPIO9和GPIO10供用户使用;
  • ESP8285的固件在编译和下载时需要将SPI MODE设置为DOUT,否则下载后无法正常运行;
除以上几点外,二者的使用方法是相同的。因此,在下文中,除非特别说明,否则凡是出现ESP8266的地方均可使用ESP8285替代。
ESP8266 SDK 简介ESP8266 SDK (Software Development Kits) is an IOT application development platform developed by Espressif for developers that includes basic platform and upper application development examples, such as Smart Light and Smart Plug. Depending on whether it is based on an operating system (OS), SDK can be categorized into two versions: Non-OS SDK and RTOS SDK.
官方文档《ESP8266 SDK Getting Started Guide》:
http://espressif.com/sites/defau ... tarted_guide_en.pdf官方文档官方提供了非常丰富的软硬件开发参考文档,在这里可以集中下载:
http://bbs.espressif.com/viewtopic.php?f=67&t=225开发点灯应用程序基于ESP8266 SDK(这里使用Non-OS SDK),接下来开发一个点灯应用程序并把生成的固件下载到硬件上看到实际效果:接在GPIO13上的LED灯一秒钟亮,一秒钟灭,一直循环。
硬件准备这里选用 PSF-A85 作为硬件模块,同时需要在 GPIO13 引脚接一个LED灯,我们将开发软件点亮它。我们这里假设PSF-A85模块和LED灯的电源已经正确连接。同时PSF-A85的串口(TX,RX)也已经连接到你的PC上了,该串口用于下载固件到ESP8285。
PSF-A85相关链接:
https://www.itead.cc/psf-a85.htmlhttp://wiki.iteadstudio.com/PSF-A85LED灯相关链接:
https://www.itead.cc/prototyping ... emitting-diode.htmlhttp://wiki.iteadstudio.com/Lighting_Emitting_Diode_(LED)开发环境的准备根据 《ESP8266 SDK Getting Started Guide》第三章,你可以搭建自己的开发环境,注意:我们选用的是Non-OS SDK。
提示:
  • 推荐的开发模型是 Ubuntu/Linux 虚拟机 + Windows,虚拟机用来编译并生成固件,通过Windows版本的下载工具    ESP DOWNLOAD TOOL将固件下载到目标板中(这里就是PSF-A85)。
  • 我们假设你有一定的嵌入式Linux开发经验或者至少熟悉Linux操作系统。
点灯应用代码编写点灯的源代码非常简单:
  • 初始化GPIO13;
  • 启动定时器;
  • 在定时器回调函数中设置GPIO13输出高电平或低电平;
完整代码如下:
#include <ets_sys.h>#include <osapi.h>#include <gpio.h>#include <os_type.h>#include <user_interface.h>static os_timer_t blink_timer;void user_rf_pre_init(void){}void ICACHE_FLASH_ATTR blinkTimerCallback(void *arg){    static bool is_low = true;    if (is_low)    {        GPIO_OUTPUT_SET(13, 1);        is_low = false;    }    else    {        GPIO_OUTPUT_SET(13, 0);        is_low = true;    }}void ICACHE_FLASH_ATTR user_init(){       gpio_init();    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_GPIO13);    GPIO_OUTPUT_SET(13, 0);    os_timer_disarm(&blink_timer);    os_timer_setfn(&blink_timer, (os_timer_func_t *)blinkTimerCallback, NULL);    os_timer_arm(&blink_timer, 1000, 1);}将上述代码另存为 user_main.c 。
编译根据《ESP8266 SDK Getting Started Guide》第五章,执行./gen_misc.sh后根据提示完成编译即可在SDK根目录下的bin/upgrade目录下得到user1.*.bin文件。
提示:
  • 在编译过程中选择支持OTA的方式,并选择APP=1即可;
  • 本例使用的是基于ESP8285的模块,因此,Flash大小是1MB,同时务必将SPI MODE设置为DOUT;
  • 如果使用的是基于ESP8266的模块,则应根据实际Flash大小和SPI MODE选择对应的编译选项;
下载在编译成功之后,就可以将编译生成的user1.*.bin和随SDK发布的 boot*.bin、blank.bin以及esp_init_data_default.bin通过串口下载到ESP8285的内部Flash中运行了。
确定下载地址参考《ESP8266 SDK Getting Started Guide》第四章可知,各个二进制文件对应的下载地址是:
  • boot*.bin:0x00000;
  • esp_init_data_default.bin:0xfc000;
  • blank.bin:0xfe000;
  • user1.*.bin:0x01000;
下载固件第一步:先使得ESP8266进入下载模式,ESP8266启动时根据下表中的引脚电平选择模式:
[td]
ModeGPIO15GPIO0GPIO2
SDIO/SPI1XX
UART Download001
Flash Boot011
使得ESP8266进入固件下载模式的基本步骤如下:
  • 搭建外围电路,使得GPIO15为低电平、GPIO0为低电平且GPIO2为高电平,即对应表中的UART Download模式;
  • 复位ESP8266或者将模块重新上电,ESP8266即可进入固件下载模式;
只有在下载模式,才能够通过ESP DOWNLOAD TOOL将编译好的固件下载到ESP8266的外接Flash或者ESP8285内部的Flash中。
第二步:根据《ESP8266 SDK Getting Started Guide》第六章,在Windows下使用ESP DOWNLOAD TOOL将上一节中的4个二进制文件一起下载到PSA-A85模块中的ESP8285内部的Flash。
提示:
  • 在下载之前,必须确认选择的SPI MODE是DOUT,否则下载成功后无法正确运行;
  • ESP8285内部的Flash是1MByte = 8Mbit;
  • PSF-A85选用的晶振是26M,SPI SPEED应选择40MHz;
  • 下载波特率选择默认的115200即可;
运行应用程序下载完成后,复位ESP8285或者将PSF-A85模块重新上电即可运行点灯应用程序,注意观察接在GPIO13引脚上的LED灯,应该是这样的现象:一秒钟亮,一秒钟灭,一直循环。
小结本文中多次提到《ESP8266 SDK Getting Started Guide》,这是乐鑫官方提供的SDK开发指南,是每一个新手应该仔细研究的文档。实际上,本文的目的就是让初学者能够尽快熟悉ESP8266的开发流程并着重描述了固件的下载过程,同时给出来ESP8266进入下载模式的条件,这一点在官方文档中并未详细说明。
参考链接论坛:
http://bbs.espressif.com/index.php官方文档地图:
http://bbs.espressif.com/viewtopic.php?f=67&t=225开发指南:
http://espressif.com/sites/defau ... tarted_guide_en.pdfhttp://espressif.com/sites/defau ... tarted_guide_cn.pdf编程API文档:
http://www.espressif.com/sites/d ... pi_reference_en.pdfhttp://www.espressif.com/sites/d ... pi_reference_cn.pdf其他的资源:
https://github.com/esp8266/esp8266-wiki/wikihttps://github.com/espressif[url=https://github.com/espressifapp]https://github.com/espressifapp[/url]
回复

使用道具 举报

Archiver|手机版|小黑屋|三木电子社区 ( 辽ICP备11000133号-4 )

辽公网安备 21021702000620号

GMT+8, 2026-3-6 00:09 , Processed in 0.027002 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表