这是我2019年写的学习笔记,首发我的博客:MCU起航,现在转载到贴吧,大家感兴趣的看看就行。文章中部分链接已取消,想看的可以去我的博客。
有人问用什么板子合适,还有的直接问我买。这个,建议大家买个二三十的模块就行,可以是NodeMcu,也可以是安信可的模块加一个底板,没必要买太贵的。
还有的人手里拿着某某物联网平台的板子,问能不能用,只要是基于ESP8266的,都可以,但是你要找到板子配套的原理图。
好了,下面是正文。
先说一下什么是SDK?
定义(转自网络):一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
再看一下乐鑫内部对SDK的描述:ESP8266 Software Development Kit (SDK) 是乐鑫为开发者提供的物联网 (IoT) 应用开发平台,包括基础平台以及上层应⽤开发示例,如智能灯、智能开关等。 SDK 的基础平台按照是否基于操作系统可分为:non-OS 和 RTOS 两种版本。
简单来说,这是一个已经搭建好的工程框架,包含完整的源文件和头文件。同时,提供了一些例程供用户参考。
那么,SDK在哪里下载?
找厂家!芯片厂家是乐鑫,所以去乐鑫官网找。这里为了节省时间,我直接放上链接(还是取消吧,感兴趣的可以去我的博客看链接):
注:本文写于2019年7月12日星期五,当前的ESP8266 NONOS SDK已经更新到了3.0.0 后续的教程也主要基于NONOS的版本。
下载解压后,可以看到下面几个文件:
接下来,需要进行一些操作,然后才能导入到AiThinker_IDE里。其实下面的操作主要参考安信可的网址:
但由于安信可的教程比较旧,所以这里做了一些调整。
1. 将 sdk 目录下的 driver_lib 重命名为 app
2. 拷贝 \examples\IoT_Demo 下的所有文件到刚才的 app 目录(提示覆盖则确认),完成后目录结构如下:
3. 将ESP8266_NONOS_SDK/third_party 这个文件夹删掉。
接下来,我们启动AiThinker_IDE,将项目导入
导入项目
1. 选择 File→Import
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的环境搭建、程序下载、固件配置,基本用法都说了一下。后面,逐步开始敲代码的过程。
有人问用什么板子合适,还有的直接问我买。这个,建议大家买个二三十的模块就行,可以是NodeMcu,也可以是安信可的模块加一个底板,没必要买太贵的。
还有的人手里拿着某某物联网平台的板子,问能不能用,只要是基于ESP8266的,都可以,但是你要找到板子配套的原理图。
好了,下面是正文。
先说一下什么是SDK?
定义(转自网络):一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
再看一下乐鑫内部对SDK的描述:ESP8266 Software Development Kit (SDK) 是乐鑫为开发者提供的物联网 (IoT) 应用开发平台,包括基础平台以及上层应⽤开发示例,如智能灯、智能开关等。 SDK 的基础平台按照是否基于操作系统可分为:non-OS 和 RTOS 两种版本。
简单来说,这是一个已经搭建好的工程框架,包含完整的源文件和头文件。同时,提供了一些例程供用户参考。
那么,SDK在哪里下载?
找厂家!芯片厂家是乐鑫,所以去乐鑫官网找。这里为了节省时间,我直接放上链接(还是取消吧,感兴趣的可以去我的博客看链接):
注:本文写于2019年7月12日星期五,当前的ESP8266 NONOS SDK已经更新到了3.0.0 后续的教程也主要基于NONOS的版本。
下载解压后,可以看到下面几个文件:
接下来,需要进行一些操作,然后才能导入到AiThinker_IDE里。其实下面的操作主要参考安信可的网址:
但由于安信可的教程比较旧,所以这里做了一些调整。
1. 将 sdk 目录下的 driver_lib 重命名为 app
2. 拷贝 \examples\IoT_Demo 下的所有文件到刚才的 app 目录(提示覆盖则确认),完成后目录结构如下:
3. 将ESP8266_NONOS_SDK/third_party 这个文件夹删掉。
接下来,我们启动AiThinker_IDE,将项目导入
导入项目
1. 选择 File→Import
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的环境搭建、程序下载、固件配置,基本用法都说了一下。后面,逐步开始敲代码的过程。