- 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板。仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。
基于C SDK的ESP8266开发技术全系列笔记
一、NONOS SDK 无操作系统开发
1、搭建开发环境,开始一个“hellow world”串口打印。
2、利用GPIO开始使用按钮点亮你的“第一盏灯”。
3、利用 “软件定时器 ” 定时0.5秒闪烁点亮一盏LED。
4 、了解PWM,更为深入地用PWM控制一盏LED的亮度变化。
5 、原生乐鑫SDK高级使用之封装Post与Get请求云端,拿到“天气预 信息”。
6 、了解 SmartConfig与Airkiss一键配 ,无需把wifi名字密码写在固件里。
7 、了解 softAP热点配 模式原理,仿“机智云”定义自己的热点配 模式协议。
8、你要找的8266作为UDP、TCP客户端或服务端的角色通讯,都在这了。
9、 [小实战上篇]Windows系统搭建8266的本地Mqtt服务器,局域 点亮一盏LED灯。
10、 [小实战下篇]Windows系统搭建8266的本地Mqtt服务器,局域 点亮一盏LED灯。
11、8266接入阿里智能,点亮一盏LED灯,期待天猫精灵语音控制的不约而至!
12、图文并茂学习阿里云主机搭建8266MQTT服务器,实现移动 络远程控制一盏LED。
13、 动手做个8266毕设小案例,smartConfig + MQTT协议轻松实现远程控制一盏LED。
14、esp8266的 FreeRtos系统学习的正确姿势 —— 环境搭建、烧录。
15、esp8266的 物联 又一股清流,8266接入阿里云平台非阿里智能的SDS服务,点亮一盏LED灯。
16、esp8266的 基于Nonos移植红外线H1838,实现红外遥控器配 ,远程控制一盏灯。
17、esp8266自研的快速上电开关五次 (开-关为一次) ,无需按键触发则8266进去一键配 模式。
18、 esp8266 基于NONOS 实现 OTA 远程升级,实现无线“ 热修复 ”升级固件程序。
19、 esp8266驱动 ds18b20、dht11 温湿度传感器,采集温湿度传感器到服务器。
20、 深入学习esp8266的esp now模式,仿机智云做一个小 关,实现无需 络下彼此通讯交互数据。
21、浅谈 esp8266 如何在本地局域 络情况下实现最大效率地和前端实现数据交互。
22、 esp8266的工程如何添加第三方静态库文件以及如何自定义文件夹,聊聊那些makeFile的事。
23、 乐鑫esp8266 NONOS SDK 3.0编程使用 SPI 驱动基于Max7219芯片的八位数码管,显示日期信息。
二、RTOS SDK 带操作操作系统开发
——– 学习笔记持续更新, 我…
很多人怎么联系我一起学习进步,下面打个小小公告:
玩转带你飞、加群群,提高门槛,不喜的朋友勿喷勿加:434878850
esp8266源代码免费学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
esp32源代码免费学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32
文章目录
-
-
- 一、认识其本质与搭建开发环境。
-
- 1.1 、 市面上无线模块有哪些。
- 1.2 、wifi模块Esp8266发展。
- 1.3 、Esp8266特点。
- 1.4 、搭建开发环境。
- 方式1,利用安信可一体化环境【新手推荐】
- 方式2,自主搭建环境【支持 rtos和nonos】:
- 二、开始我们基于 nonos 工程的第一个“Hello World”。
-
-
- 第一步:打开我们最新的NONOS的SDK下载地址:https://github.com/espressif/ESP8266_NONOS_SDK ,解压后请注意以下操作:
- 第二步:导入项目 **选择 File→Import** ,下面步骤:
- 第三步:点开C/C++分支,并选中Existing Code as Makefile Project:
- 第四步:去除C++支持,选中 Cygwin GCC,点击Browser,选中我们解压后所在的目录。点击finish。
- 第五步:此刻,成功进入到我们的主界面。
- 第六步:开始编译工程前,我们装装逼,在其的 app ->user –> user_main.c 方法修改如下,让输出为 hello world。
- 第七步:开始编译前,按照官方的说法,我们看控制台时候,直接把 Problems 栏目关掉,解释说,这个Problems 栏目 的错误不准确,只有Console 栏目下的输出为准,所以建议大家把 Problems 栏目关闭。
- 第八步:我们编译之后,看看控制台下的信息打印,说明已经成功做好固件啦。:
-
- 三、基于 rtos 如何打开运行一个工程。
- 四、让我们烧固件走起。
- 五、上电不跑程序,异常分析。
- 另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!
-
一、认识其本质与搭建开发环境。
1.1 、 市面上无线模块有哪些。
大家可知道目前的无线通信模块有哪几种主要有Wifi无线通讯、BlueTooth蓝牙和ZigBee,目前大多都是前二者,ZigBee现在用的很少了。据我所推断的,未来是属于物联 世界、智能家居领域,而蓝牙和zigbe局限于范围,蓝牙4.0仅仅最大支持100米,zigbee就不说了。
1.2 、wifi模块Esp8266发展。
2015年物联 处于爆发的一年,乐鑫的ESP8266WIFI 芯片成为强烈的催化剂。成功的将2014年前的40以上的WIFI成本压缩到现在的10元左右。内置WIFI前端和高性能的32位MCU,基本引爆物联 市场,几乎牵扯到电子的行业,都可以用上,比如WIFI开关 灯具 WIFI定位 电饭锅 空气净化器 等消费类小家电与大家电,都面临这一场技术革新,与新的用户体验!比如你仅仅增加10元的成本就可以把自己的产品被手机控制了。
1.3 、Esp8266特点。
-
要知道,在物联 世界里面的牛人,没有谁不认识 8266 。既然如此出色,那肯定有他存在的必然理由:
-
低功耗、高集成度的 Wi-Fi 芯片。
-
最小系统仅需 7 个元器件
-
超宽工作温度范围:-40°C 至 +125°C
-
ESP8285 : ESP8266 内封 8 Mbit Flash。
-
ESP8266EX 有三种运行模式:激活模式、睡眠模式和深度睡眠模式,能够延长电池寿命。
-
1.4 、搭建开发环境。
方式1,利用安信可一体化环境【新手推荐】
- esp8266 经过这么多年的迭代,sdk从1.0到目前的 3.3版本,也有2种C语言开发方式:裸跑 nonos 以及 实时操作系统 freeRtos 的支持,安信可公司一直在着乐鑫步伐跟着走,推出了 前1.0版本和 1.0版本;
- 其中 前1.0版本 仅仅支持 2.0版本及以下,而 1.0版本支持3.0或以上。
- 教程参考官 教程:添加链接描述
方式2,自主搭建环境【支持 rtos和nonos】:
- 环境搭建大家应该都几乎是选择 的,作为一个老司机,和大家一样,我也是选择为 的笔记本电脑游戏本,cpu i8 ,16g内存!
- 下面我就以 平台为大家搭建一个可以手动同步最新编译工具链、以及可编译 非操作系统nonos工程和 操作系统Rtos工程的代码,下面是搭建环境的三件套:
- esp8266最新的编译工具链下载传送门(仔细看下面的截图): https://github.com/espressif/ESP8266_RTOS_SDK
第三步:点开C/C++分支,并选中Existing Code as Makefile Project:
第五步:此刻,成功进入到我们的主界面。
第六步:开始编译工程前,我们装装逼,在其的 app ->user –> user_main.c 方法修改如下,让输出为 hello world。
- 注意:从SDK1.4版本之后,已经移除了下面2个函数,我们只需要在里面敲写即可!
- 的非实时系统编程的打印函数尽量用,切记切记!!!
第七步:开始编译前,按照官方的说法,我们看控制台时候,直接把 Problems 栏目关掉,解释说,这个Problems 栏目 的错误不准确,只有Console 栏目下的输出为准,所以建议大家把 Problems 栏目关闭。
-
之后建议大家每次编译项目前先进行 clear project,再 build project ,这样就保证了正确的代码可以完全被编译,如果正确的代码没有clear project就直接build project ,可能会 错。
-
Build Project :编译项目 ; Clean Project:清理项目,可以清理下缓存。
第八步:我们编译之后,看看控制台下的信息打印,说明已经成功做好固件啦。:
四、让我们烧固件走起。
- 如果您的8266是没有最小系统的话(如下),那么需要自己搭建最小系统来烧固件进去。
-
让我们开始烧录:根据上面第八步的生成的bin文件,我们看见了其烧录信息:
-
eagle.flash.bin——–>0x00000
-
eagle.irom0text.bin—->0x10000
- 于是,我们就打开烧录软件,配置刚刚的路径,选择烧录地址(选择之后就是绿色的),各个参数如下:
-
上面的图是不是看见很清晰的 hellow world 呀 。
-
由于 nonos 3.0 以上步骤不可行,则具体操作请访问我的B站视频教学:https://www.bilibili.com/video/av40065898
-
后记:所有自己编译出来的工程,都是有四个文件要烧录的,其中2个是必须烧录的(防止初始化失败),这2个文件分别是 esp_init_data_default.bin 和blank.bin,烧录地址根据您的8266型 区别;
-
我们最平常用的是安信可8266-12系列的,这个是32Mbit,也就是4M flash ,所以他们的地址分别是 0x3FC000 和 0x3FE000 , 最后2个的烧录文件地址看编译之后结果而决定!也即是不一定是0x10000,有可能是0x2000 , 这个根据SDK的版本有关系。所以大家还是留心点!
-
的好多人问我这个应该怎么选择,这个其实是芯片和芯片的连接方式决定的,四根线就是,而就是六根线,至于后面还有和和芯片有关,平时最多的是或者是了!
-
最后一点,本系列博客的 都是 的,在今年,更新到了版本,一些初始化代码都已经变了,大家入门的话,还是从我的下载吧。这样较快地入门学习;如果您的是最新的或者以上的工程,可能汇 以下错误:
- 莫急,这是因为未定义造成的,一般地,根据我们最常用的系列的的模块,那么只需要在根目录的文件的的代码修改如下,重新编译即可!!烧录地址不变!!
五、上电不跑程序,异常分析。
ESP8266 上电时打印的 boot 模式信息代表什么何改变 boot 模式/p>
ESP8266 上电时会判断 boot strapping 管脚的状态,并决定 boot 模式。例如,ESP8266 上电时打印的 boot 模式信息如下:
- 其中打印的 boot mode 的第一位数字(3)代表当前的 boot 模式。
- Boot 模式由 strapping 管脚的 3 位值 [GPIO15,GPIO0,GPIO2] 共同决定。如下表所示:
Strapping 管脚的 3 位值 | [GPIO15,GPIO0,GPIO2] | Boot 模式 |
---|---|---|
7 | [1,1,1] | SDIO HighSpeed V2 IO |
6 | [1,1,0] | SDIO LowSpeed V1 IO |
5 | [1,0,1] | SDIO HighSpeed V1 IO |
4 | [1,0,0] | SDIO LowSpeed V2 IO |
3 | [0,1,1] | Flash Boot |
2 | [0,1,0] | Jump Boot |
1 | [0,0,1] | UART Boot |
0 | [0,0,0] | Remapping |
烧写失败定位
确保 boot 模式在 UART boot.
将 ESP8266 拨到烧写模式,看烧写口的 log(默认 74880 查看). 正常烧写应该是 , 其中n任意,第二个参数和 SDIO 相关,不用关心!
看 log 乱码/无打印定位,确保 boot 模式在 Flash boot!
将 ESP8266 拨到运行模式,看 log 口的输出. 正常log应该是 boot mode:(3,n),第二个参数和 SDIO 相关,不用关心!
- 1.确保波特率正确
- 2.确保无串口占用
另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!
- 玩转带你飞、加群群,不喜的朋友勿喷勿加:434878850
- esp8266源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
- esp32源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!