【优雅嵌入式】使用CLion开发ESP32与ESP32-S3教程

新星杯·14天创作挑战营·第18期 10w+人浏览 154人参与

前言

作者在长期使用 Clion 稳定开发之前也尝试使用过 KeilArduino IEDVS Code 作为主力 IDE,综合体验下来 CLion 的便利性和专业性胜出一筹,直到近期一直没看到较高质量的 CLion嵌入式开发 教程,所以萌生了写此篇教程的念头,希望内容去繁求简且不失细节,能够让完全没有基础的朋友快速上手,以 ESP32ESP32-S3 为例介绍安装配置流程和常用基础操作,本教程并不否定其他开发路径,只希望以此篇教程给广大朋友们带来一个新的代码开发选择,本文所介绍的步骤不局限于 ESP32系列 的开发,也可以部分适用于 STM32系列 或其他系列芯片的开发,后面有时间也会更新 STM32 系列的 CLion 开发系列教程。


一、开发平台

1. 为什么选择Clion

JetBrains 的 IDE 以其出色的体验著称,CLion 作为其旗下的 C/C++跨平台IDE,继承了家族一致的现代化设计,并为嵌入式开发提供了深度支持。选择 CLion 还有一个重要理由:自 2025 年 1.1 版本起,JetBrains 宣布其非商业用途永久免费。这使 CLion 社区迅速活跃,且免费版几乎具备全部商业功能(仅 Code With Me 协作功能有所降级),为个人开发者提供了强大而免费的开发环境。

CLion展示图

优点:

  • 开箱即用的C++工具链,自动配置 CMake,无需手动设置编译环境,新手也能快速上手,大幅节省项目搭建时间。
  • 无与伦比的现代化界面,风格与 PyCharm、IntelliJ IDEA 等 JetBrains IDE 保持一致,切换语言无需重新适应,降低学习成本。
  • 能够处理大型复杂项目,可高效处理数百万行代码的大型项目,支持多模块、多目标并行编译,提升团队协作效率。
  • 更智能的代码辅助功能,具备深度语境感知的代码补全、即时代码分析、重构建议与精准导航,显著提升编码质量与速度。
  • 深度集成嵌入式开发环境,无缝集成 PlatformIO,通过插件即可在原生界面中创建、管理与运行项目,接近“无感”开发体验。

缺点:

  • 较高的内存性能开销,基于 IntelliJ 平台,智能化功能依赖较多内存与 SSD,启动及索引速度相对较慢。
  • 自定义程度受限,相比 VS Code 等编辑器,CLion 在界面自定义和构建流程定制方面较为受限,标准化程度较高。

2. PlatformIO是什么

PlatformIO 是跨平台的物联网开发框架,集成了构建系统、库管理和调试工具,极大简化了嵌入式开发流程。针对 ESP32,它支持 ArduinoIDF 两种开发方式,提供完整的工具链、丰富的库支持以及一键烧录与监控功能。

PlatformIO展示图
通过官方插件,PlatformIO 与 CLion 深度集成,将强大的 IDE 功能(如智能代码补全、一键编译烧录调试)引入 ESP32 项目开发中,实现了高效项目管理和舒适编码体验。这种组合让开发者能在专业IDE环境中便捷地进行 ESP32 应用的开发、构建和部署。


二、软硬件资源准备

1. 硬件资源准备

  • ESP32开发板(左边所示,用于基础演示)
  • ESP32-S3开发板(右边所示,非必须可选择跳过)
  • 一根USB数据线(Type-C 或 Micro USB 根据你的开发板选择)

硬件准备

2. 软件资源准备

资源整理上传到了百度网盘,方便大家下载:

Clion开发ESP32软件资源百度网盘下载链接

如果链接失效,可以通过评论区或私信告知

授人以鱼不如授人以渔,可能日后更新的软件资源的自行获取方式如下,感兴趣的朋友可以收藏:

(不需要更新的资源在百度网盘直接一次性获取即可)


三、安装配置过程

安装过程非常简单,可以大致分为以下3步,网盘也按照每步需要用到的软件资源进行了资源分类(其中有一些资源并不是必须)
安装三部曲

第1步 安装配置环境

  • CLion 2025.2.6.exe:CLion 代码编辑器安装包(不建议用最新版本,考虑 PlatformIO 适配更新)
  • get-platformio.py:PlatformIO 安装脚本,可用 Python 运行安装(不需要会 Python)
  • MinGW GCC环境.zip:C/C++ 编译器环境,一般系统自带无需安装(用不着可忽略,有备无患)
  • python-3.11.9-amd64.exe:Python 解释器安装程序(用来运行 PlatformIO 安装脚本)

安装配置环境

1.1 CLion安装

  • 可以选择自定义安装目录(建议)也可以就用默认C盘路径安装

CLion编辑器安装

1.2 导入配置

  • 界面中有两个选项可以将你其他的 JetBrains 系列 IDE 如 Pycharm、IntelliJ IDEA 的配置拷贝导入或将 VS Code 的配置的导入到 CLion 中使用。我们在教程可以选择 Skip Import 直接跳过,新建一个配置。

导入配置

1.3 切换中文(可选)

  • 点击确认后会跳出重启询问弹窗,需要重启IDE以完成切换语言

切换中文

1.4 安装PlatformIO插件

  • 安装完成后需要重启IDE以完成插件安装,安装如遇到问题有条件可以尝试科学上网

安装PlatformIO插件

1.5 安装Python

  • 由于本教程不是Python教程,不详细介绍每个安装选项的意义

安装Python

  • 安装完成后可以在控制台输入 python 命令测试,如若回车输出以下内容则安装成功

Python安装测试

如果输出失败或命令无效,则大概率是环境变量配置问题(第一步没有勾选),将 Python 安装目录中 python.exe 所在根目录和根目录下的 Scripts 目录放到高级系统设置的 Path 环境变量中即可解决

1.6 安装PlatformIO

  • get-platformio.py 文件所在目录输入 cmd 命令后回车打开控制台

安装PlatformIO-1

  • 输入 python get-platformio.py 命令回车运行安装脚本

安装PlatformIO-2

  • 如果安装遇到问题(超过10分钟还在等待)可以尝试输入以下命令设置镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

第2步 放置组件包(可选但建议)

组件就是开发特定芯片由平台自动下载的编译支持套件,本来应该由CLion在创建工程时自动下载完成,但是由于国内网络众所周知的原因,最好是自己手动完成(科学上网和代理设置也解决不了),如果你有耐心等待10个小时左右,也可以由 CLion 自动完成(不用怀疑你网没卡,下载就是这么慢),以后如果有新的芯片系列的开发需求如 STM32 系列,可以直接新建工程等待平台软件自动下载,完成后留存一份方便移植到其他设备

  • PlatformIO ESP32 Arduino.zip:ESP32 Arduino 开发框架组件
  • PlatformIO ESP32 Toolchain.zip:ESP32 编译工具链组件
  • PlatformIO ESP32-S3 Toolchain.zip:ESP32-S3 编译工具链组件
  • PlatformIO RISCV32-ESP Toolchain.zip:RISC-V架构 ESP 编译工具链组件

组件包

2.1 创建packages文件夹

  • C:\Users\用户名\.platformio\ 目录创建packages文件夹,也可以在新建了一次platformio工程后自动由系统创建,我们提前手动创建的目的是为了先往里面放组件

创建packages文件夹

2.2 解压缩组件到文件夹

  • 用于开发ESP32时避免长时间下载等待,而预先将这两个主要组件放进packages中

ESP32开发组件

  • 如果还需开发ESP32-S3,将下面两个组件也放进去(强烈建议不开发也可以先顺手放进去有备无患)

ESP32-S3开发组件

第3步 安装串口驱动

根据自己开发板上的串口转换芯片来选择对应的驱动程序,如果不确定可以全都安装,如果不是以下三种之一可以根据芯片上的水印自行搜索或找厂家索要相关驱动安装包进行安装,ESP32-S3 支持 USB-OTG 方式烧录程序,无需经过串口转换芯片。

  • CH340驱动.zip:CH340串口驱动安装包
  • CH343驱动.zip:CH343串口驱动安装包
  • CP210X驱动.zip:CP210X串口驱动安装包

串口驱动
(由于串口驱动安装过于简单,仅需解压出来后直接点击一键安装,所以为节省篇幅不予演示)


四、创建工程

1. 新建项目

  • ESP32 和 ESP32-S3 在第5步选项略有不同,然后根据自己的开发需要选择 Arduino 或 IDF 框架,本教程演示为 Arduino 框架

新建项目

  • 第一次创建某一芯片的项目会需要等待一段时间,会由平台自动下载所需组件(为避免长时间等待,我们此前已经手动载入了组件)

导入项目

2. 项目结构

  • include目录,用于存放项目头文件(.h/.hpp 等)
  • src目录,用于存放项目的主要源代码文件(.c/.cpp 等),头文件也可以放里面(但是复杂工程不推荐)
  • lib目录,用于存放项目专用的库文件(下篇文章会用第三方库专篇详细讲解
  • test目录,用于存放项目的测试代码
  • .pio目录,作为PlatformIO内部工作目录,自动生成编译构造,无需过多关注

CLion界面

3. ESP32简单打印测试

3.1 硬件连接

  • 通过 USB 线将 ESP32 开发板连接到电脑(确保 USB 线具备数据传输能力)

ESP32串口连接

  • 通过 Windows+X快捷键 菜单或手动搜索打开设备管理器,查看 ESP32 串口号,如果没有正确安装驱动,则此处不会显示串口号或反复闪屏。

设备管理器查看ESP32串口号

3.2 配置platformio.ini

  • upload_port,上传端口参数,用于指定烧录程序所连接的串口号(上文中已查看)
  • monitor_port,串口监视器端口参数,用于指定串口监视所连接的串口号(一般同烧录串口即可)
  • monitor_speed,串口监视器波特率参数,一般设置为115200足够使用

ESP32配置platformio.ini文件

3.3 构造项目

测试输出代码如下

#include <Arduino.h>

void setup() {
    Serial.begin(115200); // 设置串口波特率
    Serial.println("Hello ESP32 By CLion!"); // 输出测试
}

void loop() {
}

构造ESP32项目

3.4 下载烧录

ESP32下载烧录

3.5 串口监视

ESP32串口监视

4. 设置一键下载监视按钮(重要)

  • 我们可以看到以上程序的下载调试过程仍然十分麻烦,通过以下步骤进行一键下载监视按钮设置,可以在符合 CLion 原生 UI 风格的基础上更方便快捷的进行程序下载调试,只需要一键就可以编译、下载并进入串口调试。

CLion自定义工具栏1
CLion自定义工具栏2
CLion自定义工具栏3
CLion自定义工具栏4

CLion自定义工具栏5
CLion自定义工具栏6

  • 设置完成后一键下载监视按钮效果测试如下所见,自动编译下载后直接进入了串口调试:

ESP32一键下载监视

5. ESP32-S3串口打印测试

5.1 硬件连接

  • 通过 USB 线将 ESP32-S3 开发板串口 Type-C 接口连接到电脑(确保 USB 线具备数据传输能力)

电脑连接ESP32-S3串口连接方式

  • 通过 Windows+X快捷键 菜单或手动搜索打开设备管理器,查看 ESP32-S3 串口号,如果没有正确安装驱动,则此处不会显示串口号或反复闪屏。

设备管理器查看ESP32-S3串口号

5.2 配置platformio.ini

  • upload_port,上传端口参数,用于指定烧录程序所连接的串口号(上文中已查看)
  • monitor_port,串口监视器端口参数,用于指定串口监视所连接的串口号(一般同烧录串口即可)
  • monitor_speed,串口监视器波特率参数,一般设置为115200足够使用

ESP32-S3配置platformio.ini文件

5.3 编写代码并一键下载烧录

测试输出代码如下

#include <Arduino.h>

void setup() {
    Serial.begin(115200); // 设置串口波特率
    Serial.println("Hello ESP32-S3 By CLion!"); // 输出测试
}

void loop() {
}

ESP32-S3一键下载监视

6. ESP32-S3 USB打印测试

6.1 硬件连接

  • 通过 USB 线将 ESP32-S3 开发板串口 USB-OTG 接口连接到电脑(确保 USB 线具备数据传输能力)

电脑连接ESP32-S3 USB连接方式

  • 通过 Windows+X快捷键 菜单或手动搜索打开设备管理器,确保 ESP32-S3 开发板已连接,无需记住串口号,通过 USB 方式串口号可以自动配置,如果没有正确安装驱动,则此处不会显示串口号或反复闪屏。

ESP32-S3连接查看USB设备

6.2 配置platformio.ini

  • -DARDUINO_USB_CDC_ON_BOOT,USB虚拟串口启停参数,设置为1启用虚拟串口
  • -DCORE_DEBUG_LEVEL,核心日志打印等级限制参数,设置为1仅打印错误信息以便于查看

ESP32-S3配置platformio.ini文件 USB方式

6.3 编写代码并一键下载烧录

测试输出代码如下,特别说明:ESP32-S3 通过 USB 调试时,如果需要在启动时通过虚拟串口输出信息,建议延迟1-5秒左右,因为需要留给 CLion串口调试器 重新连接的时间,如果不设置延迟,会导致按下 RESET 按钮后输出信息无法打印到控制台,可以放心的是这并不是什么 BUG,而是使用 USB 调试方式的特性,因为串口方式在重启芯片时并不会重启串口转换芯片,如 CH340、CH343 等芯片都是处于始终使能状态,所以不需要重新连接,而 USB 因跟随芯片启动所以会受到芯片重启影响

#include <Arduino.h>

void setup() {
    Serial.begin(115200); // 设置串口波特率
    delay(1000); // 延迟1秒
    Serial.println("Hello ESP32-S3 By USB!"); // 输出测试
}

void loop() {
}

ESP32-S3一键下载监视 USB方式


五、第三方库

PlatformIO 拥有庞大的第三方库生态系统,在 CLion 上可以很方便的按照以下步骤导入这些库(在下一篇文章中会用专篇详解以 OneButton 库为示例的实战使用,以及如何自定义一个库并放到 lib 目录中使用,本文不过多进行赘述)。

  • 启动 PlatformIO Home,正常情况下会自动跳出网页,如果没有跳出可以根据下方链接访问

PlatformIO第三方库CLion使用1

  • 在 Libraries 页面搜索所需库库名,本文示例为 OneButton 库

PlatformIO第三方库CLion使用2

  • 进入第三方库安装页面,并复制第一个依赖名(^ 表示兼容版本,~ 表示允许小版本更新,什么符号都不加表示精确版本)

PlatformIO第三方库CLion使用3

  • 将第三方库依赖名粘贴到配置文件中的 lib_deps 参数,如有更多库换行即可,然后重载配置

PlatformIO第三方库CLion使用4

  • 可以看见,主程序中已经可以导入刚才安装的第三方库正常进行使用了

PlatformIO第三方库CLion使用5


总结

本教程介绍了如何使用 CLion 进行 ESP32 和 ESP32-S3 的开发,编辑器安装配置、组件放置、PlatformIO 框架环境搭建、驱动安装和自定义工具栏带来的开发效率提升,并给出了 Arduino 代码示例,重点是理解每个参数和配置的意义。未来预计会逐步开坑第三方库的详细使用教程、自定义库的开发方法、C++ 方式开发 Arduino 框架示例和 STM32系列 的 CLion 开发教程。

教程如若发现纰漏,欢迎私信或留言批评指正,感谢朋友们的阅读和支持,感谢大家多点赞收藏评论

<think>好的,用户想在CLion中配置ESP32-S3-BOX-3B的开发环境。我需要先整理相关的步骤。首先,CLion通常用于C/C++开发,而ESP32开发通常使用ESP-IDF框架,官方支持的是VS Code插件,但用户可能偏好CLion。所以需要指导用户如何将ESP-IDF集成到CLion中。 第一步应该是安装必要的工具,比如ESP-IDF和相关的工具链。用户可能需要从Espressif的文档中获取安装指南,确保他们安装了正确版本的ESP-IDF。接下来,安装CLion插件,比如Espressif IDF插件,这能帮助在CLion中管理项目。然后,配置项目的时候,可能需要通过CMake来设置,因为CLion基于CMake。这里可能需要修改CMakeLists.txt文件,包含正确的组件和依赖。 另外,用户可能需要配置调试环境,比如使用OpenOCD和JTAG调试器,这部分需要检查CLion是否支持这些工具的配置。还要注意,CLion的插件可能有特定的设置步骤,比如设置ESP-IDF路径和Python环境。最后,编译和烧录过程中可能出现的问题,比如端口权限或者驱动问题,需要提醒用户检查。 需要确保所有步骤都符合最新的ESP-IDF版本和CLion的兼容性。可能还需要引用Espressif的官方文档或者社区资源,帮助用户解决常见问题。同时,生成的相关问题可能涉及如何优化编译速度、调试技巧或者多环境配置等,这些都需要预先考虑。</think>### CLion中配置ESP32-S3-BOX-3B开发环境指南 #### 一、环境准备 1. **安装ESP-IDF框架** 通过乐鑫官方安装工具下载最新版ESP-IDF(建议v5.1+),执行命令: ```bash cd ~/esp git clone -b v5.1.1 --recursive https://github.com/espressif/esp-idf.git ./install.sh ``` 安装完成后需执行`export.sh`激活环境变量[^1]。 2. **CLion插件配置** - 安装**Espressif IDF**插件:`Settings > Plugins > Marketplace`搜索安装 - 配置工具链路径:`Settings > Languages & Frameworks > Espressif IDF`中指定ESP-IDF目录和Python解释器 #### 二、项目配置 ```cmake cmake_minimum_required(VERSION 3.16) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(esp32-s3-box-3b-demo) ``` 需在`main`目录下创建`CMakeLists.txt`声明组件依赖: ```cmake idf_component_register( SRCS "main.cpp" INCLUDE_DIRS "." REQUIRES esp_lcd_touch_tt21100) ``` #### 三、调试配置 1. **OpenOCD配置**: ```json "debug_configurations": { "openocd_cfg": "${IDF_PATH}/docs/api-guides/tools/openocd-esp32.cfg" } ``` 2. 通过`Run > Edit Configurations`添加J-Link调试配置,选择ESP32-S3目标芯片 #### 四、编译烧录 1. 选择`esp32s3`为目标平台 2. 连接USB至`/dev/ttyACM0`(Linux)或`COM3`(Windows) 3. 执行`Build > Build Project`后通过`ESP-IDF Flash`按钮烧录
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值