ESP32-C3:ESP-IDF的使用及Vscode开发

1. ESP-IDF概述

在这里插入图片描述

  • 提供一套库函数,在此基础上可以快捷开发我们的应用。

2 .ESP-IDF SDK目录总览

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 安装开发环境

  1. 以下环境命令基于Linux,可以使用vm虚拟机安装Ubuntu系统。
  2. 更换Linux镜像源
    在这里插入图片描述
  3. 安装详细教程:https://docs.espressif.com/projects/esp-idf/zh_CN/v4.3.2/esp32c3/get-started/index.html#get-started-get-prerequisites
  4. 安装依赖软件包
sudo 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

在这里插入图片描述

  1. 在 Linux 中添加用户到 dialout,当前登录用户应当可以通过 USB 对串口进行读写操作。在多数 Linux 版本中,您都可以通过以下命令,将用户添加到 dialout 组,从而获许读写权限:
sudo usermod -a -G dialout $USER
  1. 下载ESP-IDF包代码,新建一个目录存放,其中可以下载指定版本的ESP-IDF。
mkdir -p ~/esp
cd ~/esp
git clone -b v4.3.4 --recursive https://github.com/espressif/esp-idf.git
  1. 由于GitHub下载较慢,我们可以转到gitee下载。
    在这里插入图片描述
git clone -b v4.3.4 https://gitee.com/EspressifSystems/esp-idf.git
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
cd esp-gitee-tools
export EGT_PATH=$(pwd)
cd ~/esp/esp-idf
$EGT_PATH/submodule-update.sh
  1. 安装ESP-IDF开发工具链,但由于访问GitHub缓慢,需要更换源地址访问下载。
cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
pip --version
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com
./install.sh

在这里插入图片描述

  1. 设置环境变量,刚刚安装的工具尚未添加至 PATH 环境变量,无法通过“命令窗口”使用这些工具。因此,必须设置一些环境变量,这可以通过 ESP-IDF 提供的另一个脚本完成。
. ./export.sh
  1. IDF环境是基于python虚拟环境的,所以每次打开终端都需要运行export.sh脚本才能正常使用idf.py命令, 因此通过以下的设置,在需要IDF的终端中输入get_idf就导入了IDF的编译环境!
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 至此,开发环境配置完成。
  3. 试验一下,我们可以复制esp-idf/examples/get-started/blink工程出来,并打开终端运行以下命令来试验。
get_idf
idf.py set-target esp32c3
idf.py menuconfig
idf.py -p /dev/ttyUSB0 flash
idf.py -p /dev/ttyUSB0 monitor

在这里插入图片描述
在这里插入图片描述

  1. 从上面的环境设置中,包括下载,编译调试代码都是使用终端工具的,不利于我们开发,因此可以安装VS Code,并安装插件,实现ESP-IDF代码的编译调试和运行,是非常方便的,以下方式可适用于window下vscode。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

4. ESP-IDF编译系统

  1. 工程基本目录架构
    在这里插入图片描述
  2. main目录:仅可包含一个main目录,定义了用户入口函数app_main
  3. sdkconfig:配置文件,由编译系统自动生成。
  4. build目录:编译产生的中间件。
  5. CMakeLists.txt:重要的编译脚本,用户不仅需要编写源代码,还需要编写工程和组件中的CMakeLists.txt文件,CMakeLists.txt文件用于描述编译设置等,这需要我们了解一些cmake的用法。
  6. ESP-IDF是默认运行freeRTOS的,即是基于多任务编程,包括入口函数app_main其实是属于main()线程的回调。
  7. 路径
    在这里插入图片描述

5. 实现一个自定义vscode模板工程

  1. 从3章节可知,如果用命令行开发是非常繁琐的,特别是不熟悉Linux命令的同学,而使用vscode开发就是一个不错的方法,但随着要实现的功能增多,通常会将ESP-IDF的多个组件组合在一起,也会添加更多的逻辑代码,为了能够代码复用和目录架构清晰,我们需要一个模板工程来进行简单的操作管理,而且该模板工程同时也应该支持命令行的编译调试方法。

  2. 按照3章节的开发环境搭建后,创建了一个VScode工程,我们将该工程复制一份到其他位置(重要),并命名为esp32_project。
    在这里插入图片描述

  3. 确认根目录下的CMakeLists.txt文件是否存在。
    在这里插入图片描述

  4. 确认根目录下的Makefile文件是否存在。
    在这里插入图片描述

  5. 确认main目录下的CMakeLists.txt文件是否存在。
    在这里插入图片描述

  6. 指定taget目标,指定后会自动生成sdkconfig文件。
    在这里插入图片描述

  7. 此时先清除一下工程,然后编译工程并下载到目标板试验一下。
    在这里插入图片描述

  8. 在工程根目录添加一个目录存放我们自定义的文件。
    在这里插入图片描述
    在这里插入图片描述

  9. 接下来修改顶层CMakeLists.txt文件,告知构建系统自定义组件的位置所在。
    在这里插入图片描述

  10. 使用自定义组件并编译运行。
    在这里插入图片描述

  11. 至此,一个标准的模板工程创建成功,按照这样目录分类,便于代码复用,也方便添加所需的自定义组件。

6. 配置文件

  1. 通常,我们会把一些经常修改的设置定义为宏,然后修改宏,就能够实现设置的全局更改,在这里我们可以使用菜单的方式,通过图形化来配置,需要创建Kconfig.projbuild文件。
    在这里插入图片描述
  2. 使用定义
    在这里插入图片描述
  3. 使用图形配置
    在这里插入图片描述
    在这里插入图片描述
  4. 其实图形化配置跟代码中宏定义设置差不多,最终目的都是修改宏定义来达到全局修改代码。

引用

  • 本文引用了《ESP32-C3 物联网工程开发实战》,仅作笔记学习交流,侵删。
  • 本文引用乐鑫官网文档https://idf.espressif.com
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值