当前位置: 首页 > news >正文

用 PlatformIO + ESP-IDF 框架开发 ESP32

PlatformIO + ESP-IDF 框架 开发 ESP32,是一个现代化、高效的方案。


🚀 PlatformIO + ESP-IDF 开发流程

1️⃣ 安装 PlatformIO

👉 推荐用 VSCode + PlatformIO 插件

  • 下载 VSCode: https://code.visualstudio.com/
  • 安装 PlatformIO 插件(在 VSCode Extensions 里搜索 platformio-ide

2️⃣ 创建 ESP-IDF 项目

在 VSCode → PlatformIO: HomeNew Project

  • Project name: esp32_idf_demo
  • Board: 选 Espressif ESP32 Dev Module
  • Framework: ESP-IDF

点击 Finish,PlatformIO 会自动生成工程结构,并下载 ESP-IDF SDK。


3️⃣ 工程目录结构

生成的目录大概是:

esp32_idf_demo/├── include/           # 头文件├── lib/               # 静态库或自定义库├── src/               # 源文件 (main.c / main.cpp)├── platformio.ini      # 配置文件└── test/               # 单元测试代码

4️⃣ 编辑 src/main.c 示例代码

这里是一个基础 ESP-IDF 风格的闪烁 LED 示例:

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"#define LED_PIN GPIO_NUM_2   // 一般开发板内置LED接在GPIO2void app_main(void)
{gpio_config_t io_conf = {.pin_bit_mask = (1ULL << LED_PIN),.mode = GPIO_MODE_OUTPUT,.pull_up_en = 0,.pull_down_en = 0,.intr_type = GPIO_INTR_DISABLE};gpio_config(&io_conf);gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT);while (1) {gpio_set_level(LED_PIN, 1);ESP_LOGI("BLINK", "LED ON");vTaskDelay(500 / portTICK_PERIOD_MS);gpio_set_level(LED_PIN, 0);ESP_LOGI("BLINK", "LED OFF");vTaskDelay(500 / portTICK_PERIOD_MS);}
}

5️⃣ platformio.ini 文件自动生成,一般如下:


[env:esp32dev]
platform = espressif32
board = esp32dev
framework = espidfupload_speed = 460800
monitor_speed = 115200

👉 可以在这里自定义:

  • 烧录速度 upload_speed
  • 分区表
  • CMake 参数等

6️⃣ 编译、烧录、串口监视

在 VSCode 底部状态栏或 Terminal:

pio run             # 编译
pio run -t upload   # 编译 + 烧录
pio device monitor  # 串口监视器

或者点击左下角的 PlatformIO 按钮选择操作。


🌟 常用 PlatformIO 命令

命令功能
pio run编译工程
pio run -t upload编译并烧录
pio device monitor打开串口监视器
pio run -t clean清理构建文件
pio check静态代码分析

📝 提示

串口监视速率:注意和开发板默认一致(一般 115200 或 921600)
驱动程序:Windows 用户确保 USB-UART 驱动已安装(CP2102 / CH340)
ESP-IDF API 文档: https://docs.espressif.com/projects/esp-idf/en/latest/


💡 进阶

⚡ 配置 WiFi、蓝牙、HTTP、MQTT 等代码示例
⚡ 自定义分区表、SPIFFS、NVS 存储
⚡ 配置 CMakeLists.txt 的高级用法
⚡ 同时支持 Arduino + ESP-IDF 混合框架

相关文章:

  • 【Three.js】初识 Three.js
  • 很喜欢地理,高考选地理相关专业该怎么选?
  • 《数据安全法》学习(一)
  • BLEU 中的修正 n-gram 精确度 (Modified n-gram Precision)
  • Python自动化办公工具开发实践:打造智能报表生成系统的心得与洞见
  • CVPR2024迁移学习《Unified Language-driven Zero-shot Domain Adaptation》
  • qt配合海康工业相机取图开发
  • OpenCV 鼠标操作与响应之绘制ROI提取图像
  • grubby命令详解
  • 精益数据分析(102/126):SaaS用户流失率优化与OfficeDrop的转型启示
  • 【DeepSeek】移植计划
  • ImageSharp.Web 使用指南:高效处理ASP.NET Core中的图像
  • PHP设计模式实战:构建高性能API服务
  • 临时文件夹大量0字节xml问题排查
  • 比特币的运行机制---第2关:比特币的区块与网络
  • Token 的流动性:为什么它是项目的关键?
  • 为什么传统 Bug 追踪系统正在被抛弃?
  • 使用 C++/OpenCV 和 libevent 构建远程智能停车场管理系统
  • 从0开始学习R语言--Day22--km曲线
  • Spring源码本地编译并执行测试
  • 电商开发网站公司/西安百度推广优化托管
  • 网易短链接生成/优化seo招聘
  • 深圳网站建设开发公司/百度推广下载安装
  • 福州电子商务网站建设/seo网上培训多少钱
  • 网站建设趋势/成都网络推广运营公司
  • 滕州做网站比较好的网络公司/域名网站