更新内容 更新时间
2021.05.01 基于ESP32+IDF 4.4完成初稿
2023.03.12 基于IDF 5.0.1添加VScode IDF扩展安装、配置、使用方法
2023.04.07 增加VScode配置头文件路径方法

一、ESP32-C3模组

本想仗剑天涯走四方,奈何没有抢到票,五一假期只能宅咯,it is a sad story~

刚从安信可官方抢到手一块ESP32-C3F模组开发板,甚是便宜,上手体验一把!(链接)

ESP32-C3系列WIFI模组是一款高集成度的超低功耗 2.4G Wi-Fi和蓝牙BLE5的芯片,搭载 RISC-V 32 位单核处理器,工作频率高达160 MHz,内置安全硬件,支持二次开发。


该芯片主要有以下解决方案亮点:

  • 一个完整的WI-FI子系统:支持Station模式、SoftAP模式、SoftAP+模式
  • 一个蓝牙LE子系统:支持BLE5的特性、蓝牙mesh
  • 32bit的RISC-V单核处理器:主频高达160MHz,四级流水线
  • 存储能力:384KB片上ROM,400KB SRAM(16KB for Dcache),SPI接口可用于外扩flash
  • 可信安全特性:Secure boot、Flash加密、4096-bit OTP、加解密硬件、随机数生成器、权限控制
  • 丰富的外设接口:22xGPIOs、3xSPI、2xUART、1xI2C、1xI2S

安信可ESP32-C3F模组的引脚说明如图:

二、ESP32 C3硬件开发环境准备

搭建过程官方参考文档:快速入门 ESP32-C3

使用Micro USB线连接ESP32 C3F开发板到电脑即可,如图:

三、ESP32 C3软件开发环境搭建(Windows)

搭建过程官方参考文档:快速入门 ESP32-C3

软件开发的搭建有三种选择:

  • 手动安装工具链
  • 使用Eclipse插件
  • 使用VScode插件

这里为了更清楚的上手ESP32 C3开发环境,手动在Windows上安装工具链

1. 下载安装器

ESP-IDF 需要安装一些必备工具,才能围绕 ESP32-C3 构建固件,包括 Python、Git、交叉编译器、CMake 和 Ninja 编译工具等。

安装 ESP-IDF 必备工具最简易的方式是从 https://dl.espressif.com/dl/esp-idf/?idf=4.4 中下载 ESP-IDF 工具安装器。

安装程序会安装以下组件:

  • 内置的 Python
  • 交叉编译器
  • OpenOCD
  • CMake 和 Ninja 编译工具
  • ESP-IDF

因为网络原因,安装过程中使用github下载会出问题,这里我选择ESP-IDF离线安装工具

2. 使用安装器进行安装所需环境

下载完成之后双击开始安装。

同意协议:

等待安装前环境检查完成:

电脑中目前没有ESP-IDF,选择下载:

选择下载的ESP-IDF版本和安装位置:

选择ESP-IDF工具安装路径:

选择要安装的组件,全选:

确认要安装的信息。

接下来,等待下载安装完成:

安装完成之后如图:

安装完成之后,安装工具会在桌面创建下面三个快捷方式:

在ESP32-IDF工具安装目录可以看到所需工具链:

在ESP-IDF安装目录可以看到ESP-IDF环境:

3. 升级ESP-IDF环境

离线安装工具安装的ESP-IDF版本为v4.2,但本文中所使用的模组ESP32-C3在v4.3版本中支持,从乐鑫服务器下载v4.3发布版本:

  • https://dl.espressif.com/dl/esp-idf/releases/esp-idf-v4.3-beta3.zip

下载之后解压,替换原来的所有内容:

3.1. 配置cmd环境

替换完成之后,运行 install.bat 进行安装,安装完成,再次打开IDF命令行工具:

可以正常使用。

3.2. 配置powershell

进入ESP-IDF安装路径,打开powershell:

运行安装脚本:

运行ESP-IDF powershell命令行,正常使用:

3.3. 在当前命令行使用

若要在当前命令行使用,执行ESP-IDF提供的环境变量设置脚本即可,在本文的安装情况下,powershell执行:

G:\develop_tools\ESP32-IDF\export.ps1

4. helloworld工程示例

4.1. 创建工程

从ESP-IDF安装目录中拷贝helloworld示例工程过来:
打开命令行,运行设置环境变量的脚本,设置好环境:

4.2. 配置工程

配置目标芯片:

idf.py set-target esp32c3

打开menuconfig配置界面:

idf.py menuconfig


特别注意!!!此处配置需要修改为Rev2!否则程序运行出错!

4.3. 编译工程

运行命令可以编译应用程序和所有 ESP-IDF 组件,接着生成 bootloader、分区表和应用程序二进制文件:

idf.py build

4.4. 烧录固件

使用命令,将刚刚生成的二进制文件 (bootloader.bin, partition-table.bin 和 hello-world.bin) 烧录到 ESP32-C3 开发板:

idf.py -p PORT [-b BAUD] flash
  • port是端口号,可以在【设备管理器】中看到,这里是COM9;
  • BAUD是波特率,默认波特率为 460800;

烧录命令为:

idf.py -p COM9 flash

4.5. 查看串口信息

idf.py -p PORT monitor

同样,port是端口号,可以在【设备管理器】中看到。

这里是COM9,命令为:

idf.py -p COM9 monitor

5. VScode IDF扩展安装

上述操作都是在命令行中完成的,可以借助VSCode+IDF扩展搭建一个可视化环境。

5.1. 安装IDF扩展

在VSCode扩展市场搜索IDF,点击安装即可。

5.2. 配置IDF扩展

按Ctrl + Shift + P打开命名面板,进入IDF配置界面:

选择高级配置:

设置组件下载服务器、ESP-IDF源码路径、ESP-IDF工具所在路径,点击Install安装:

设置使用本地已经存在的ESP-IDF工具:

出现这个界面时,表示配置成功,否则重来。

5.3. 使用VSCode扩展

使用VScode打开之前的helloworld工程,在VScode下边栏会出现一排工具按钮:

5.3.1. 配置工程

小齿轮是配置工程(menuconfig),可视化配置,非常方便:

比如设置CPU主频:

设置完之后点击右上角保存即可。

5.3.2. 编译工程

小圆柱形按钮是编译整个工程,编译日志会显示在终端:

5.3.3. 烧写固件

点击最前面的串口号,选择要使用的串口:

点击小闪电形按钮,选择下载模式为串口下载:

选择之后就会自动下载:

5.3.4. 查看串口日志

点击小电脑的图标,打开监视器,查看串口日志:

5.3.4. 一键编译、烧写、打开串口

修改源码之后,点击小火苗的按钮,可以一键编译、烧写、打开串口。

5.3.5. 配置头文件路径

.vscode路径下新建c_cpp_properties.json文件,填充如下内容,在includePath中添加自己的ESP-IDF框架源码所在路径:

{"configurations": [{"includePath": ["${workspaceFolder}/**","I:/MCU/ESP32/ESP-IDF/Espressif/frameworks/esp-idf-v5.0.1/**"]}],"version": 4
}

四、ESP32 C3软件开发环境搭建(Linux)

搭建过程官方参考文档:快速入门 ESP32-C3

这里我使用的系统为Ubuntu 20.04

1. 安装前的准备

sudo apt-get updatesudo 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

2. 获取 ESP-IDF

因为ESP-C3在v4.3中才支持,这里选择release/v4.3发布包下载。

mkdir -p ~/esp
cd ~/esp
wget https://dl.espressif.com/dl/esp-idf/releases/esp-idf-v4.3-beta3.zip

下载到文件后解压:

upzip esp-idf-v4.3-beta3.zip

将解压出的文件夹重命名为esp-idf:

mv esp-idf-v4.3-beta3 esp-idf

3. 安装额外的工具

除了 ESP-IDF 本身,还需要安装 ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等。

很多工具在国内pip源没有,所以提前换为官方源:

pip3 config set global.index-url https://pypi.python.org/simple/

下面的命令将 ESP-IDF 所需的编译工具默认安装在用户的根目录中,即 Linux 中的$HOME/.espressif

其中第二行命令设置在安装工具时优先选择 Espressif 下载服务器。

cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh

安装成功之后:

4. 设置环境变量

编辑shell用户配置文件:

vim ~/.bashrc

复制并粘贴以下命令到 shell 配置文件中:

alias get_idf='. $HOME/esp/esp-idf/export.sh'

刷新配置文件:

source ~/.bashrc

现在可以在需要的时候,在任何终端窗口中运行 get_idf 来设置或刷新 esp-idf 环境:

get_idf

5. 新建工程

在目录esp下新建project目录:

cd ~/esp
mkdir project

将esp-idf下的helloworld示例工程复制过来:

cp -r ../esp-idf/examples/get-started/hello_world ./

示例工程新建完成。

进入示例工程:

cd hello_world

在当前终端设置idf环境:

get_idf

6. 配置工程

配置目标芯片为ESP-C3:

idf.py set-target esp32c3

默认配置存在bug,进入menuconfig配置界面:

idf.py menuconfig


按s保存后,按esc退出。

7. 编译工程

idf.py build

8. 在 Linux 中添加用户到 dialout

当前登录用户应当可以通过 USB 对串口进行读写操作。在多数 Linux 版本中,您都可以通过以下命令,将用户添加到 dialout 组,从而获许读写权限:

sudo usermod -a -G dialout $USER

请重新登录,确保串口读写权限生效。

9. 烧录固件

开发板使用串口连接到Linux主机,在linux下串口设备号以 /dev/tty 开始,通过插拔前后的不同找出设备号:

找出设备号后,使用下面的命令烧录:

idf.py -p /dev/ttyUSB0 flash


烧写成功。

ESP32-IDF开发笔记 | 01 - ESP-IDF开发环境搭建(2023.04.08更新)相关推荐

  1. 微信公众号Java开发-笔记01【微信公众号介绍、开发环境搭建】

    学习网址:哔哩哔哩网站 微信公众号开发-Java版 微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] 微信公众号Java开发-笔记02[] 微信公众号Java开发-笔记03[] 微信公 ...

  2. Bootstrap响应式Web开发笔记01——基础入门

    Bootstrap响应式Web开发笔记01--基础入门 Bootstrap响应式Web开发笔记02--移动端页面布局 Bootstrap响应式Web开发笔记03--Bootstrap栅格系统 Boot ...

  3. JavaEE——Spring学习笔记01【Ioc开发的模式】

    JavaEE--Spring学习笔记01[Ioc开发的模式] JavaEE--Spring学习笔记02[Spring和Mybatis的整合] JavaEE--Spring学习笔记03[AOP开发] J ...

  4. (硅谷课堂项目)Java开发笔记2:项目概述,搭建项目环境和开发讲师管理接口

    文章目录 (硅谷课堂项目)Java开发笔记2:项目概述,搭建项目环境和开发讲师管理接口 1.项目概述 1.1 项目介绍 1.2 硅谷课程流程图 1.3 硅谷课堂功能架构 1.4 硅谷课堂技术架构 1. ...

  5. [推荐]OpenERP开发笔记(5) -- 自定义模块开发之一

    http://www.jeffzhang.cn/OpenERP-DEV-Notes-Custom-Module-Development1/ OpenERP开发笔记(5) -- 自定义模块开发之一 发表 ...

  6. windows内核开发笔记七:内核开发OVERLAPPED结构体详解

    windows内核开发笔记七:内核开发OVERLAPPED结构体详解 typedef struct _OVERLAPPED {   DWORD Internal;   DWORD InternalHi ...

  7. 公众号开发精品教程(1)——绪论及环境搭建

    系列文章传送门 公众号开发精品教程(1)--绪论及环境搭建 公众号开发精品教程(2)--将项目接入微信及简单交互 公众号开发精品教程(3)--创建菜单 公众号开发精品教程(4)--生成带参数的二维码及 ...

  8. 蓝牙芯片nRF51822开发系列(一):环境搭建和GPIO使用(点亮LED)

    蓝牙芯片nRF51822开发系列(一):环境搭建和GPIO使用(点亮LED) 前言(文章末尾获取工程源码) 一.开发必备 二.开发环境搭建 1.创建文件 2.新建工程 三.编写代码 GPIO详解 使用 ...

  9. Fuzz学习笔记(一)—— WinAFL环境搭建与基本使用

    WinAFL学习笔记(一)-- WinAFL环境搭建 环境配置 安装步骤 1)安装git 2)安装CMake 3)编译dynamorio 编译32位 编译64位 4)编译winafl 编译32位 编译 ...

最新文章

  1. 如果你也时常想要上进,我们可以相互鼓励,相互促进
  2. 简述Linux 文件系统的目录结构
  3. QT5运行错误:ImportError: cannot import name QAxContainer from PyQt5 解决
  4. 2019蓝桥杯省赛---java---C---1(求和)
  5. 最近新学的小东西和单词
  6. 【面试必备】奉上最通俗易懂的XGBoost、LightGBM、BERT、XLNet原理解析
  7. cname 别名记录 解析过程_西部数码操作解析:如何为服务器创建别名地址
  8. Qt拖放操作和打印操作
  9. linux proc目录 是什么意思,linux 下proc目录里面有什么
  10. FreeSwitch Lua编程接口(1)dialplan里的配置
  11. 浏览器兼容性问题和解决方案
  12. zkLedger: Privacy-Preserving Auditing for Distributed Ledgers
  13. 高数 | 函数在间断点处的极值问题
  14. IntelliJ IDEA 官方网站
  15. C#中如何使用Sqlite、SqliCe等本地数据库?
  16. 成都拓嘉启远:拼多多上产品清单的条件
  17. 联想手机鸿蒙刷机包,联想手机刷机教程 卡刷
  18. 代码优化小技巧-使用enum统一返回code码
  19. 腾讯面试题: 百度搜索为什么那么快?
  20. KRPano动态热点专用素材图50多个,加动态热点使用方法

热门文章

  1. [半闲之人] 关于SteamVR摄像机和普通摄像机冲突的解决办法
  2. 联发科MT6737和MT6735芯片组有什么差异?MT6737和MT6735芯片组资料分享
  3. 用Typora+PicGo搞定多个平台发文和微信公众号排版
  4. 传奇开群服/公益服用什么服务器最好?
  5. 使用ffmpeg做直播推流例子
  6. 多因子量化选股(1)
  7. 一位IT行业高收入者的理财规划方案
  8. Storm集成HBase、JDBC、Kafka、Hive测试
  9. Cruise的API简介--Properties篇
  10. Debian Etch 安装指南