ESP8266学习笔记(二)

作者: JaydenOnly | 来源:发表于2016-09-25 01:02 被阅读0次

上一周讲了ESP8266的初步开发,也就是AT模式工作,这种模式是最适合初学者使用的,因为wifi模块内部的函数都已经封装好了,无论你用什么mcu,都可以直接调用指令来实现你所需要的功能。

当然,如果仅仅是有这种模式,那么这块芯片就不至于那么火了。这块芯片的神奇之处在于它本身是一个mcu,而且生产公司对部分的函数免费开源,给了开发者很大的发挥空间。也就是说,本来需要在51或者arduino单片机上运行的程序可以直接烧录进wifi芯片,让芯片充当单片机,这样在产品开发时就节省了成本和空间,可以做出更高效美观的作品。所以,下面我就讲讲ESP8266的深度开发。

开发前的准备

  1. usb转TTL模块,或者单片机开发板,直接使用它的串口通讯引脚,用来烧录程序和进行串口信息打印;

  2. 从乐鑫官网下载ESP8266_NONOS_SDK,虽然官方有提供在linux下的开发平台,但是我还是推荐用安信可的IDE开发工具,它把make指令等都集成在eclipse上,直接通过build project就可以编译出bin文件,当然,安信可的工具集里面是有包括烧录工具的,所以不须另外下载。

开发步骤

  1. 将sdk导入安信可IDE,点导入工程,浏览到一个要编译的工程,编译器选 Cygwin;
  2. 导入example进行改写或者自己编写user_main.c;
  3. 执行build project,生成bin文件;
  4. 使用烧录工具,将blank.bin,flash.bin,irom_text.bin和init_data_default.bin导入对应的地址中,将芯片的GPIO0口置于低电平,按照说明连接串口,点击一键烧录;
  5. 烧录完毕后,将GPIO0口置空,芯片处于正常工作模式。

项目结构

项目结构.jpg
  • app为项目源码文件夹,可以在里面编写自己的程序;
  • bin为烧录文件文件夹,程序编译后自动生成的bin文件会在这里,导入烧录软件即可进行烧录;
  • documents为说明文档文件夹,关于这个sdk的使用方法和介绍文档都在里面;
  • driver_lib为驱动链接库,关于串口和IO口的驱动程序的头文件和源文件都在里面,编译时后自动生成一个静态链接库;
  • examples为示例代码文件夹,可以从里面摘取代码进行模仿和学习;
  • include为头文件文件夹,当你编程时需要用到的封装函数须在这里引入对应的头文件;
  • ld为flash编译控制文件夹,里面对应你的不同flash容量给了不同的地址信息,在烧录时会调用;
  • lib为静态链接库文件夹,里面包含了各种头文件的静态链接库,编译时会调用;
  • tools为脚本与工具,一般不用修改;
  • license为许可文件,不用修改;
  • makefile为配置文件,定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,也是自动化编译过程的核心。

关于makefile

一般makefile的关注点有以下几个:

编译模式控制(针对根目录makefile)
image.png

这是在linux系统下编译控制的选择项,不过在IDE下只需修改makefile文件就可以如愿地控制编译,如果不使用ota升级功能的话那么就用上图给的编译方式就行了。

包含头文件(所有makefile)
image.png

这是makefile编译时会包含的头文件,用户可以根据自己存放头文件的位置自行对includes 后的内容进行修改。

SUBDIRS(针对app文件夹下的makefile)
image.png
变量SUBDIRS : 指定当前目录下,要递归编译的子目录。用户需根据自己app文件夹下的子目录名称和个数,分别添加到SUBDIRS变量中,例如你的app目录如下图所示,那么对应的makefile就与上图一致。
image.png
COMPONENTS_eagle.app.v6(针对app文件夹下的makefile)
image.png

该变量是表明将引用那些app文件夹下的静态链接库,一般是与用户自己编写的文件夹名称相对应,所以用户根据需要自行修改,否则会出现函数未定义的错误。

LINKFLAGS_eagle.app.v6(针对app文件夹下的makefile)
image.png

该变量是表明将引用那些lib文件夹下的静态链接库,与lib文件夹下的文件名称相对应,所以用户根据需要自行调用修改,否则也会出现函数未定义的错误。

总之,makefile是一个很重要的文件,管理依赖和控制编译的整个过程。如果感兴趣的话,可以去学习它的语法,简直就是自动化编译的神器 ~

总结

这次大概讲了ESP8266的深度开发的一些准备工作和整体框架,关于具体的开发和烧录等细节将在后续的文章中为大家阐明。

相关文章

  • ESP8266学习笔记(二)

    上一周讲了ESP8266的初步开发,也就是AT模式工作,这种模式是最适合初学者使用的,因为wifi模块内部的函数都...

  • 【ESP8266】使用uPyLoader调试运行MicroPyt

    前言 在《基于ESP8266的MicroPython入门笔记》这篇文章中博主记录了在ESP8266运行MicroP...

  • ESP8266学习笔记(十)

    上一次我们讲了app的基本控件的监听和初始化的过程,这次我们就把上次提到的socket通讯进行更细的讲解。 发送消...

  • ESP8266学习笔记(九)

    通过上次的说明,在基本的app界面xml编好了之后,我们就开始写主程序文件。 变量申明 首先,tcp通讯需要的是服...

  • ESP8266学习笔记(一)

    这段时间一直在想着设计一个远程遥控开关,所以这个星期在研究esp8266这款芯片,接下来我要讲的内容也是跟这个芯片...

  • ESP8266学习笔记(五)

    上次讲了基础的网络开发,已经可以满足基本的调试需求了,但是当我们真正做项目时,我们是不可能把自己的电脑作为一个实时...

  • ESP8266学习笔记(四)

    通过上次讲了ESP8266的SDK基础开发和之前的介绍,相信大家对这块芯片已经有了比较详细的了解了,这一周我们就来...

  • ESP8266学习笔记(三)

    上一次讲了ESP8266这块芯片的深度开发的准备工作和有关编译指导文件makefile的一些要点,那么这一次就来讲...

  • ESP8266学习笔记(八)

    这次我们开始进入android上位机的开发,根据上次的介绍,这次针对ESP8266的上位机我们会采用与公网服务器对...

  • wifi模块ESP8266学习笔记-使用乐鑫NON-OS SDK

    上一篇是wifi模块ESP8266学习笔记-环境搭建,踏了点坑,接下来(也就是12月1号)动手写了个Hello W...

网友评论

    本文标题:ESP8266学习笔记(二)

    本文链接:https://www.haomeiwen.com/subject/lchxyttx.html