ESP8266_03SDK与Makefile的基本用法

ESP8266_01搭建开发环境

ESP8266_02程序的编译与下载

ESP8266_03SDK与Makefile的基本用法

ESP8266_04管脚控制与软件定时器

ESP8266_05 ESP8266有几个串口?

ESP8266_06硬件定时器与IO中断

ESP8266_07基于PWM的呼吸灯

ESP8266_08基于flash的数据掉电保护

ESP8266_09基于IIC控制的OLED屏幕

ESP8266_10 ESP8266的STATION模式

ESP8266_11 ESP8266的UDP广播

ESP8266_12 ESP8266客户端模式下的TCP通信

ESP8266_13服务器端模式下的TCP通信

ESP8266_14 SOFTAP模式下的服务器端和客户端

ESP8266_15天气预报之TCP的GET操作

ESP8266_16天气预报之JSON数据的生成与解析

ESP8266_17简单网络时间协议-SNTP

ESP8266_18 MQTT协议接入ONENET平台

ESP8266_19MQTT协议接入ONENET平台_订阅主题

ESP8266_20 基于ONENET平台的数据上传之TCP的POST操作

ESP8266_21基于ESP8266的一键配网

ESP8266_22基于自身ADC的电压采样

ESP8266_23基于硬件定时器的红外遥控器解码

         正文开始之前的闲扯:

         项目原因,没办法保证一天一更。昨天甲方爸爸临时让我改程序,还想让我通宵赶出来,我是那么容易屈服的人吗?

         有人问用什么板子合适,还有的直接问我买。这个,建议大家买个二三十的模块就行,可以是NodeMcu,也可以是安信可的模块加一个底板,没必要买太贵的。

         还有的人手里拿着某某物联网平台的板子,问能不能用,只要是基于ESP8266的,都可以,但是你要找到板子配套的原理图。

         好了,下面是正文。

 

         先说一下什么是SDK?

         定义(转自网络):一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

         再看一下乐鑫内部对SDK的描述:ESP8266 Software Development Kit (SDK) 是乐鑫为开发者提供的物联网 (IoT) 应用开发平台,包括基础平台以及上层应⽤开发示例,如智能灯、智能开关等。 SDK 的基础平台按照是否基于操作系统可分为:non-OS 和 RTOS 两种版本。

         简单来说,这是一个已经搭建好的工程框架,包含完整的源文件和头文件。同时,提供了一些例程供用户参考。

 

         那么,SDK在哪里下载?

         找厂家!芯片厂家是乐鑫,所以去乐鑫官网找。这里为了节省时间,我直接放上链接:

         https://www.espressif.com/en/support/download/sdks-demos

         注:本文写于2019年7月12日星期五,当前的ESP8266 NONOS SDK已经更新到了3.0.0 后续的教程也主要基于NONOS的版本。

         下载解压后,可以看到下面几个文件:

         接下来,需要进行一些操作,然后才能导入到AiThinker_IDE里。其实下面的操作主要参考安信可的网址:https://wiki.ai-thinker.com/ai_ide_use

         但由于安信可的教程比较旧,所以这里做了一些调整。

1. 将 sdk 目录下的 driver_lib 重命名为 app

2. 拷贝 \examples\IoT_Demo 下的所有文件到刚才的 app 目录(提示覆盖则确认),完成后目录结构如下:

3. 将ESP8266_NONOS_SDK/third_party       这个文件夹删掉。

 

接下来,我们启动AiThinker_IDE,将项目导入

导入项目

1. 选择 File→Impor

t

 

2. 点开C/C++分支,并选中Existing Code as Makefile Project

 

3. 去除C++支持,选中 Cygwin GCC

点击Browser,选中ESP8266_NONOS_SDK-3.0.0所在的目录

4. 点击 Finish 完成ESP8266_NONOS_SDK-release-v3.0.0_01的导入

如下图:

 

编译项目

鼠标选中项目名称,点击右键出现菜单:

 

Build Project :编译项目

Clean Project:清理项目

选中编译项目,控制台输出如下图即编译成功

 

         真的能编译成功?         那是不可能的。

         安信可官网说的是能编译成功,但针对的可能是比较老的SDK版本,如果你使用3.0版本的SDK,肯定是会报错的。报错如下:

         打开根目录下的makefile文件,找到第29行,把等号后面的值改掉。

         SDK3.0里面写的是0,改成多少?根据你模块的FLASH大小来修改:如果是8MBIT,改为2;如果是16MBIT,改为3;如果是32MBIT,改为4.

         这个关系不用背下来,makefile文件向下翻到第82行,你会看到它有一个说明:

         它这里写的值的单位是BYTE。改完之后,再次编译,你会发现编译成功了:

         接下来,思考另一个问题:为什么有人生成的bin文件是这样的?

         其实,安信可官网曾经说过。可生成两种形式的bin文件,一种是不支持在线升级的,一种是支持在线升级的。刚才这个图,就是支持在线升级的。那么,如何生成这种bin文件?

         打开根目录下的makefile文件,找到第25、26行。当第25行为new的时候,如果第26行是1,那么生成的是支持在线升级的,如果是0,那就不支持在线升级。

         除此之处,当我们使用一些特殊功能的源文件的时候,也需要在Makefile里添加相应的库文件。所以,这里建议大家,多看几遍Makefile文件,不需要完全看懂,但要知道基本用法。

         至此,关于ESP8266的环境搭建、程序下载、固件配置,基本用法都说了一下。后面,逐步开始敲代码的过程。

发布了27 篇原创文章 · 获赞 7 · 访问量 5208

猜你喜欢

转载自blog.csdn.net/lazyduck/article/details/97288872