Ubuntu18.04 ESP32-S2 二次开发(1) - 开发环境搭建
Ubuntu18.04 ESP32-S2 二次开发(2)- 点亮LED
Ubuntu18.04 ESP32-S2 二次开发(3)- 按键输入
Ubuntu18.04 ESP32-S2 二次开发(4)- 建立WIFI AP模式
Ubuntu18.04 ESP32-S2 二次开发(5)- 建立WIFI STA模式
Ubuntu18.04 ESP32-S2 二次开发(6)- 创建TCP客户端
···
Ubuntu18.04 ESP32-S2 二次开发(1) - 开发环境搭建
-
- ···
- ESP32-S2 介绍
-
- 介绍
- ESP芯片对比
- 搭建环境
-
- 安装准备
- 下载代码
- 设置工具
- 设置环境变量
- 开始创建工程
- 连接设备
- 配置
- 编译工程
- 烧录到设备
- 串口监视
- 参考文档
ESP32-S2 介绍
介绍
由于项目需要一款WIFI模组,以前也没接触过WiFi模块,也算是从头学习WiFi模块的开发,在网上筛选很久之后最终选择了安信可的ESP-12K模块,这个模块的WiFi芯片采用的是乐鑫的ESP32-S2。这款WiFi模块有42个引脚可以用,完全可以省掉额外的MCU,一个WiFi模块就可以完成MCU所有工作。
ESP芯片对比
ESP32-S2是在ESP32的基础上进行了一些裁剪和添加。最重要的部分是移除了蓝牙,增加了USB OTG。看一下ESP32-S2、ESP32、ESP8266之间的差别:
可以发现ESP32-S2主频240Mhz,比一般的单片机主频还高,SRAM和ROM空间都比较大,还能扩展RAM,一般的项目都足够我们用了,这个容量代码也足够写了。同时官网也给出了相关的硬件手册和技术开发手册。(https://www.espressif.com/products/socs/esp32-s2)
搭建环境
ESP32-S2可以在Ubuntu和Windows下搭建开发环境,但是我更加习惯在Ubuntu下开发,再者Ubuntu的编译速度比Windows更快也更方便。作为开发者,掌握Ubuntu开发也应该是基本技能吧。
安装准备
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
下载代码
首先需要在GitHub上下载ESP的官方代码。打开终端后,运行以下指令:
mkdir -p ~/esp
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
设置工具
cd ~/esp/esp-idf
./install.sh esp32s2
出现下面的提示则表明安装成功
设置环境变量
在需要运行 ESP-IDF 的终端窗口运行以下命令:
. $HOME/esp/esp-idf/export.sh
注意,命令开始的 “.” 与路径之间应有一个空格!
开始创建工程
找到ESP-IDF中examples目录下的get-started/hello_world工程。将 get-started/hello_world 工程复制至 ~/esp 目录下:
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
ESP-IDF 的 examples 目录下有一系列示例工程,都可以按照上面的方法进行创建。可以按照上述方法复制并运行其中的任何示例,也可以直接编译示例,无需进行复制。
连接设备
将 ESP32-S2 开发板连接到 PC,并查看开发板使用的串口。通常,串口在不同操作系统下显示的名称有所不同:
- Windows 操作系统: COM1 等
- Linux 操作系统: 以 /dev/tty 开始
- macOS 操作系统: 以 /dev/cu. 开始
配置
创建工程之后,进入hello_world 目录,并运行工程配置工具 menuconfig。
cd ~/esp/hello_world
idf.py set-target esp32s2
idf.py menuconfig
打开一个新项目后,应首先设置“目标”芯片 idf.py set-target esp32s2。注意,此操作将清除并初始化项目之前的编译和配置。
可以通过此菜单设置项目的具体变量,包括 Wi-Fi 网络名称、密码和处理器速度等。 hello_world 示例项目会以默认配置运行,因此可以跳过使用 menuconfig 进行项目配置这一步骤。
编译工程
idf.py build
运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成 bootloader、分区表和应用程序二进制文件。如果一切正常,编译完成后将生成 .bin 文件。
烧录到设备
将刚刚生成的二进制文件 (bootloader.bin, partition-table.bin 和 hello-world.bin) 烧录至 ESP32-S2 开发板:
idf.py -p PORT [-b BAUD] flash
将 PORT 替换为 ESP32-S2 开发板的串口名称,不知道可以使用ls /dev/tty*查询是哪个端口。
我这里是/dev/ttyUSB0,所以命令就是:(如果没有成功,重新插拔USB口再重复试一下)
idf.py -p /dev/ttyUSB0 flash
如果一切顺利,烧录完成后,开发板将会复位,应用程序 “hello_world” 开始运行。
串口监视
使用下面命令可以查看串口输出
idf.py -p PORT monitor
端口和上面烧录一样,我这里命令是:
idf.py -p /dev/ttyUSB0 monitor
用串口工具查看也是一样的效果
参考文档
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s2/get-started/index.html#get-started-connect