ESP32学习笔记(一) 环境搭建与下载
作者:Nevel 博客:nevel.cnblogs.com 转载请保留出处
前几天刚入手了ESP32模块,趁着放假有时间,我们先把ESP32的编译环境搭建好
一.官方固件包的安装与配置.
首先,我们把ESP32模块连接上电脑,如果没有ESP32底板的话,则需连接一个usb转ttl模块,接下来我们下载好两个压缩包:
Msys32为ESP32的下载工具链和仿真环境,可以从如下网址下载
https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20160816.zip
esp32_idf为官方的固件包 可从git上同步
我们将msys32解压后放在c盘根目录,运行msys32 目录下的 msys2_shell.cmd
我们进入了一个类似命令行的页面,其实官方提供的这个下载和仿真工具其实是MSYS 因为之后的开发需要在Shell中执行一些linux下的命令 所以使用这样一个工具模拟一个unix的模拟环境。
注: MSYS 是用于辅助 Windows 版 MinGW 进行命令行开发的配套软件包
接下来我们正式进入命令行操作:
1.创建文件夹,同步固件包(已经下载好固件包的可直接解压到c盘根目录,并跳过此步)
输入 mkdir esp32_idf,在c盘根目录创建 esp32_idf 文件夹,
输入 cd /c/esp32_idf/ ,将目录换到该文件夹
2.克隆 idf 固件库
之后输入 git clone --recursive https://github.com/espressif/esp-idf.git
这个需要一定时间,中途可能会报错,但是并没有什么影响。
添加编译所需的环境变量
打开 C:\msys32\etc\profile.d\esp32_toolchain.sh(使用记事本打开),添加export IDF_PATH="C:/esp32_idf/esp-idf"一行,保存并退出。
3.配置MENU CONFIG
该步骤中我们将进行一些编译有关的参数配置,ESP32官方提供了一个图形化配置界面,我们将使用他
我们先输入cd /c/esp32_idf/esp-idf/examples/01_hello_world
以为01_hello_world为根目录,对官方提供的hello world这个项目进行编译配置。
输入 make menuconfig ,等待界面出现
选择" Serial flasher config"并按下回车键
接下来选择 Default Serial Port 的时候继续按回车
输入COM15 (我的电脑为串口15,连接到其他串口修改为自己的串口号。可先使用串口助手确定ESP32所连接到的串口号)。
其他的不用修改
输入后用向右方向键选择下方的exit,回车之后再选择exit 回车后即可退出。最后还按一次回车保存设置参数。
4.进行编译与下载
输入 make flash 编译程序,程序编译完成后自动进入下载环节。当出现如下窗口时说明已经下载成功。然后按下复位键即可运行程序。
此时我们输入cat COM15 打开串口观察到:
出现我们想要看到的hello world
到此基本的 Linux 仿真环境和交叉编译工具链的配置已经完成
但是我们需要的不仅仅是一个编译下载工具,我们还需要一个ide才能开发
接下来的我们安装eclipse。
二. Eclipse的安装与配置
安装环境:win7 x64
我们先安装好jre(java的运行包)(jre_8u101_windows_i586_8.0.1010.13.exe)
再从eclipse官网上下载好eclipse C/C++ 编译器的安装包(eclipse-cpp-neon-R-win32.zip),并将安装包解压到c盘根目录,打开eclipse。
1. 关闭欢迎界面,点击左侧project Explorer 右键选择new —>makefile project ... 那一项
选择 C/C++下面的 Existing code ad Makefile Project,单击 Next。
2.选择 Browse,然后选择 c 盘根目录自己建立的 esp32_idf 文件夹,不要选择 esp-idf目录,esp-idf 目录只有官方的 sdk 没有应用程序。
3.选择编译工具链:Cross GCC,然后选择 Finish
4.接下来需要设置工程的一些参数了。
选择 C/C++ Build 页面下的 Environment 选项卡,
A)单击 Add 按钮,在 name 栏输入 V,value 栏输入 1;
B)再次单击 Add 按钮,在 name 栏输入 IDF_PATH,value 输入 esp-idf 固件库的目录。C:/esp32_idf/esp-idf,分清楚,这里选择的是 idf 固件库的目录;
需要注意的是,此处是/不是\,否则编译会找不到正确的路径。
C)修改 PATH:删除原来的内容,然后输入C:\msys32\usr\bin;C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin
(前提是你按照教程解压的官方工具链文件)。
输入完成后单击 OK。
5.选择 C/C++ Build 选项,然后将 "Use default build command"选项前面的标记取消,Build command
选项就处于可编辑的状态了,输入bash ${IDF_PATH}/tools/windows/eclipse_make.sh 然后点击OK。
6.进入 "C/C++ General" -> "Preprocessor Include Paths" 选项,然后选择"Providers" 页面。
选择下拉列表中的 "CDT Cross GCC Built-in Compiler Settings" ,
在下方会出现一个"Command to get compiler specs" 的可输入窗口,使用 xtensa-esp32-elf-gcc 替换
${COMMAND},或者直接输入 xtensa-esp32-elf-gcc ${FLAGS} -E -P -v -dD "${INPUTS}"。
7.进入 "C/C++ General" -> "Preprocessor Include Paths" 选项,然后选择"Providers" 页面。
选择下拉列表中的 " CDT GCC Build Output Parser",在 Compiler command pattern 输入框中的开始位置插入 xtensa-esp32-elf- 。
最后改输入框内容为 xtensa-esp32-elf-(g?cc)|([gc]\+\+)|(clang)
单击 OK 结束配置。
8. 右键 example 目录下的工程目录(01_hello_world),选择 Make Targets->creat,在弹出的对话框中输入 flash,如图所示。输入完成单击 OK。
9.工作做到现在已经完成了 90%。先要暂停一下,不要着急着编译,因为你编译也会卡主 的。工程编译必须先进行 config 才行,否则无法编译通过。
这时候要打开 msys32_shell.cmd, 进入 01_hello_world 目录,输入 make menuconfig,进行串口设置(详细步骤请参考上一章 节内容)
10.确保你的模块已经连接到电脑上,等待上位机链接,下载程序。
11.就差最后一步了。。。鼠标单击 esp32_idf 文件夹,使其处于选中的状态。一定要保证
esp-idf 是被选中的!点击菜单栏的 Project->Make Targets->Build。在弹出的对话框中选择
Target 栏下的 flash,然后单击下方的 Build,此时就是等待(开始可能会卡一分钟左右)编译器编译完成,并自动下载。
编译完成后会在 esp-idf-template->build 目录下生成很多编译输出的文件。我们需要用的是
bootloader->bootloader.bin,app-template.bin 和 partitions_singleapp.bin 三个文件。
将这三个文件通过官方提供的下载工具下载至芯片即可
15、等待下载完成后按下复位键即可运行。打开串口调试助手。
选择正确的串口,波特率115200,即可在串口调试助手上看到输出信息。
16、大功告成!
第三篇 Arduino 环境配置篇
0、电脑环境:Win10x64 and Win10x86
1、基于你已经完成第一篇的工作。
2、去百度网盘下载我打包好的工具https://pan.baidu.com/s/1kVdiCYV#list/path=%2F&parentPath=%2FESP32
3、解压 03.固件库&Windows 环境目录下的arduino-nightly.zip 到 c 盘根目录(或者其他目录
都可以)。
4、设置环境变量,如下图
5、已经完成了, 打开 Arduino.exe。配置下基本的一些设置工具-> 开发板->ESP32 Dev
Module(其他的也行只要是 ESP32 的就可以);FlashFrequency 选择 40Mhz;UploadSpeed 选择
921600;端口选择正确的串口;和板子相关的已经选择完了。
6、打开个示例代码试下吧文件->示例->WiF(i 注意一定要是 Examples for ESP32 分栏下面的)
->WiFiClient(或者其他的例程也行),打开之后编译。成功通过。点击上传即可。
注:第二三篇部分源于网络,有删改
来源:https://www.cnblogs.com/nevel/p/6290903.html