本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。
一、认识其本质。
乐鑫ESP8266学习的七七八八了,下面开始新的旅程,我们来玩玩ESP32,其功能强大之处在于可以同时支持
WI-FI
+BlueTooth
, 即 wifi加蓝牙 。可见之处多么强大,还可以同时开启蓝牙和wifi哦!ESP32是一款WiFi和蓝牙系统级芯片(SoC),具有行业领先的射频性能、低功耗和高度集成的优势。
ESP32集成了完整的发射/接收射频功能,包括天线开关,射频balun,功率放大器,低噪放大器,过滤器,电源管理模块和先进的自校准电路。自校准电路实现了动态自动调整以消除外部电路的缺陷。
ESP32带有2个32位、LX6 CPU,主频高达240MHz,采用7级流水线架构。
ESP32还集成了丰富的模拟传感和数字接口。 ESP32的超低功耗射频架构和拥有专利的省电技术延长了实际应用的电池续航时间。
二、学习资料参考。
API介绍英文文档(没有中文版):http://esp-idf.readthedocs.io/en/latest/api-reference/index.html
Esp32开发官方论坛:https://www.esp32.com
- 环境搭建参考文档:https://blog.csdn.net/solar_lan/article/details/79887807
三、搭建环境所需要的材料(3个)。
官方Linxu环境搭建ESP32相关文档:https://esp-idf.readthedocs.io/en/latest/get-started/linux-setup.html
① ToolChain 工具链下载:
分为 Linux 64位的和 32位的 。目前2018.5.5的乐鑫最新IDF框架支持的工具链需要到工具链版本
80
,切记切记!版本80的64位系统下载链接:点我下载
版本80的32位系统下载链接:点我下载
② 乐鑫IDF框架下载:
- 乐鑫IDF框架是什么?这里我就不多说了! 用
git
命令来拉取下来,这就可以可以同步最新的框架版本!懒散的我直接一个downLoad
下载,发现会有错误,可能是会把某些文件没下载,切记!还是用前辈的方法拉取下来!
git clone --recursive https://github.com/espressif/esp-idf.git
③ 乐鑫推荐搭建8266的开发环境集成!
可以参考机智云的文档集成8266开发环境介绍:点我查看
注意点①: 使用乐鑫推荐的方式来安装虚拟镜像
ESP8266_lubuntu_20141021.ova
的Linux版本是 32位,所以我们如果选择此方式的话,那么前面下载的工具链为32位
,那本文的也是基于32位的工具链,其实和64位的集成方式一样,只是下载不一样的代码!注意点②: 注意设置共享文件夹位置,我们下载的压缩包都是放在共享文件夹的!
四、开始安装。
① 我首先在共享文件夹下面新建子文件夹
ESP32_Only
,专门放ESP32工程的子文件夹Esp32Project
,以及放IDF的子文件夹IDF
,以及放工具链的子文件夹toolsChain
!② 再把我们上面下载的压缩包工具链压缩包放在
toolsChain
文件夹!并且解压到此文件夹!③ IDF框架压缩包放在
IDF
,通过git
指令来拉取到到此文件夹!
git clone --recursive https://github.com/espressif/esp-idf.git
在解压压缩包时候可能出现了压缩包解压出错!此刻要以管理员身份运行你的解压工具,再来解压这个压缩包,切记切记!
五、环境变量集成。
- ①:先控制台切换到我们的工具链的解压目录,确保路径一致:
cd /mnt/Share/ESP32_Only/toolsChain/xtensa-esp32-elf
- ②:编辑局部的Shell变量:
sudo vim /etc/profile
输入上面的指令之后,将会出现以下的界面,我们需要的修改此文件的配置:
编辑此文件的顺序:先点击
i
开始注入我们的代码,弄好之后点击ESC
退出编辑,再输入:wq
保存退出!我们注入的代码其实很简单,如下代码,表示指定我们的编译工具目录和IDF的SDK目录:
export PATH=$PATH:/mnt/Share/ESP32_Only/toolsChain/xtensa-esp32-elf/bin
export IDF_PATH=/mnt/Share/ESP32_Only/IDF/esp-idf
- ③:编辑完毕之后,我们还要使之生效:
source /etc/profile
- ④:检查下是否安装集成成功:
xtensa-esp32-elf-gcc -v
发现出下面输出,恭喜!集成成功:
gcc version 5.2.0 (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a)
六、运行工程。
- ① 打开
IDF/esp-idf/examples/get-started
下面的hello_world
工程,直接拷贝到我们上面新建的Esp32Project
目录下,其实放在哪里都一样。
- ② 控制台切换到此目录:
/mnt/Share/ESP32_Only/Esp32Project/hello_world
- ③ 配置此工程选项 , 出现配置弹窗(注意控制台的窗体大小放大一点否则会报错):
make menuconfig
- 主要修改如下:
-
- 第一个 :
SDK tool configuration --->
配置SDK指向目录,如果我们之前弄的不出错,此处可不理会!Py版本选择默认的2就是了!
- 第一个 :
-
- 第二个:
Serial flasher config --->
主要修改的是串口下载配置:我们是在windows的串口工具下载的,所以第一个不用理会,第二个选择波特率,我们默认115200 ,最主要的是Flash Size
,安信可的esp32模组是 4M的!之后点击save
! 之后你会看见在这个文件夹下面多了2个文件,sdkconfig
,此是配置文件,不要删除!
- 第二个:
-
-
- ④ 开始编译,首次编译可能要等3分钟,甚至更长,此时会有不断的Log打印,莫急莫急!之后编译就很快了:
make all -j8
- 这里是成功编译后LOG:
-
七、烧录文件。
需要三个文件:
hello-world.bin
、partitions_singleapp.bin
和bootloader.bin
,其中前2个在工程目录下面的build
文件夹,第三个在build
文件夹的bootloader
目录下;
下载烧录工具:点我下载最新版
烧录地址,烧录时候,和8266一样,GPIO0为低电平,同时复位即可进去烧录模式:
看看我们的串口打印:(各位改下几个单词就是Hellow World 的打印啦!)
GitHub: https://github.com/xuhongv/StudyInEsp32
QQ交流群:434878850