【得捷电子Follow me第2期】ESP32-S3之基于Clion+PlatformIO+Arduino环境搭建和使用
本帖最后由 小默叔叔 于 2023-10-9 12:18 编辑# 【得捷电子Follow me第2期】ESP32-S3之基于Clion+PlatformIO+Arduino环境搭建和使用
### 首先感谢“忙碌的死龙”隆哥的帮忙,借给我**Adafruit ESP32-S3 TFT Feather开发板,让我可以假期快乐coding**
## 一、开发环境介绍
1. **Clion**
CLion是一款由JetBrains开发的集成开发环境(IDE),专门设计用于C和C++编程。它提供了强大的代码编辑、调试、代码导航和自动化构建工具,使C和C++开发变得更加高效。CLion支持多种平台,包括Windows、macOS和Linux,并且可以集成多种编译器,如GCC和Clang。
安装相关插件后,Clion还可以给例如STM32和ESP32开发。
2. **PlatformIO**
PlatformIO是一个用于嵌入式开发的开源跨平台IDE,可以与ESP32一起使用。它提供了项目管理、自动构建、调试和库管理等功能,简化了ESP32开发流程,使开发更加便捷。您可以使用PlatformIO在VSCode等IDE中轻松创建、编写、构建和上传ESP32固件,还支持调试和库管理,加速开发周期。
我们这里使用了它作为Clion的插件。
3. **Arduino**
Arduino是一种开发平台,提供易于使用的硬件和软件工具,用于创建嵌入式系统和物联网设备。它以简单的方式编写代码,适合初学者和专业开发人员。
PlatformIO提供了更强大的项目管理、构建和调试工具,使得ESP32开发更加便捷。这意味着可以在PlatformIO中轻松地编写、构建和上传ESP32固件,同时还可以利用Arduino库和简单的编程语法来开发您的应用程序。这个组合结合了Arduino的易用性和PlatformIO的功能,使ESP32项目的开发更高效。
## 二、开发环境搭建
1. Clion 插件安装
打开clion,选择安装插件“PlatformIO for Clion” + “Arduino Support” 后者主要是方便编译和查看项目代码还有一些编译串口等小工具
2. 选择Adafruit ESP32-S3 TFT Feather对应的开发板和开发环境
3. 编译和下载
4. 串口查看运行日志
虽然上面Arduino Support 支持查看串口,但我还是建议用比如SecureCRT这类串口,因为设置下打印中文不乱码,其他的串口会乱码,我也不想花时间修改。
5. 添加依赖库
打开 platformio.ini 文件,添加一行 “`lib_deps =`”,例如添加lvgl库
```arduino
platform = espressif32
board = adafruit_feather_esp32s3_tft
framework = arduino
lib_deps =
lvgl/lvgl@^8.3.9
```
## 三、点灯实验(嵌入式工程师的开发第一个项目)
1. 点灯代码
```c
#include <Arduino.h>
int led = LED_BUILTIN;
void setup() {
// Some boards work best if we also make a serial connection
Serial.begin(115200);
// set LED to be an output pin
pinMode(led, OUTPUT);
}
void loop() {
// Say hi!
Serial.println("Hello!");
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for a half second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(500); // wait for a half second
}
```
2. 照片展示
3. 功能扩展
指示灯的作用有很多,比如我们可以用于作为连接WiFi状态的显示:
快闪:未连接WiFi
慢闪:连接WiFi成功
其他还可以自己扩展
## 四、开发开始遇到的各种“坎坷”:
肯定很多人好奇,为什么要用这种组合,当然是因为我linux环境下的IDF烧录一直不成功啊,,,我排查了好久,感觉可能是分区没搞好导致的,它只能在windows下用烧录软件选择串口烧录,USB模式就不行,我不知道是不是我哪里操作不对,反正不行,最后无奈选择了现在的开发环境和方式,,**这个花了我3天时间**
然后中间我电脑忽然拷贝文件时,windows资源管理器也会卡掉,尝试了n种办法后,也只能重新装系统,**这个花了我1整体时间(包含晚上**)
还遇到了因为不小心误删代码盘(我个人习惯是代码写完第一版才建git和push),导致需要重写代码(当时已经完成了95%的工作量)
然后又因为PlatformIO这个不熟,导致代码有个地方出问题,烧录后,重启一直进入DFU模式,而且我还看不到模块日志,找不到原因,**这个花了我1下午和1晚上时间**
最后就看到别人假期开心的提交了作业,我还在查我的环境加载是否ok,,,诶,,我想用IDF编程,你们知道在arduino上freertos貌似是不支持vTaskList()的吗????????**这个我也挣扎了2小时**
以前一直用idf,这次用这种开发方式也是第一次,也一直在摸索 … <p>老兄,我的也是重启一直进入 DFU 模式,怎么办 啊?</p>
<p>我用 platformio 开发环境,下载程序失败呢。。。<img height="53" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/sad.gif" width="54" /></p>
<p> </p>
<p>第一次玩 esp32,网上没找到资料呢。</p>
CoderX9527 发表于 2024-11-2 12:04
老兄,我的也是重启一直进入 DFU 模式,怎么办 啊?
我用 platformio 开发环境,下载程序失败呢。。。
...
<p>终于在 adafruit 官网找到了资料:</p>
<p>先按住 boot 键再按下reset 键;再依次释放 boot 键、reset 键。这样就能进入 esp32 rom bootloader, platformio IDE 可以下载了。</p>
<p> </p>
<p>注意下载串口和打印日志的串口不同。</p>
页:
[1]