小默叔叔 发表于 2023-10-9 12:19

【得捷电子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,这次用这种开发方式也是第一次,也一直在摸索 …

CoderX9527 发表于 2024-11-2 12:04

<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>&nbsp;</p>

<p>第一次玩 esp32,网上没找到资料呢。</p>

CoderX9527 发表于 2024-11-2 15:11

CoderX9527 发表于 2024-11-2 12:04
老兄,我的也是重启一直进入 DFU 模式,怎么办 啊?

我用 platformio 开发环境,下载程序失败呢。。。
...

<p>终于在 adafruit 官网找到了资料:</p>

<p>先按住 boot 键再按下reset 键;再依次释放 boot 键、reset 键。这样就能进入 esp32 rom bootloader, platformio IDE 可以下载了。</p>

<p>&nbsp;</p>

<p>注意下载串口和打印日志的串口不同。</p>
页: [1]
查看完整版本: 【得捷电子Follow me第2期】ESP32-S3之基于Clion+PlatformIO+Arduino环境搭建和使用