【必看】ESP32-C3 IDF+VsCode 开发环境搭建(ubuntu 22.04)

详细可阅读官方文档😃(release/v4.4):点此进入

一、 安装准备🛠︎

1.1 工具链安装

  • 编译 ESP-IDF 需要以下软件包
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.2 获取ESP-IDF

  • 在围绕 ESP32-C3 构建应用程序之前,请先获取乐鑫提供的软件库文件 ESP-IDF 仓库。简而言之就是clone GitHub官方仓库,后续需要在该库文件里配置。
  • 打开终端,创建文件夹esp,进入到该文件夹,进行克隆(需要魔法)。
mkdir -p ~/esp
cd ~/esp
git clone -b release/v4.4 --recursive https://github.com/espressif/esp-idf.git

克隆过程中比较缓慢,耐心等待,可能遇到下载中断等异常。

1.3 设置工具

  • 继续上方,克隆完成后需要对ESP-IDF进行设置,输入下面的指令完成设置
cd ~/esp/esp-idf
./install.sh esp32c3

简而言之就是运行esp-idf目录下的install.sh脚本,查看该脚本其实就是安装一些ESP-IDF的工具和python相关包等

二、测试例程🧪

  • 继续上方,安装好后我们可以测试一个hello_world例程,该例程在esp-idf/examples/get-started/hello_world里,我们把它拷贝到其他地方去。
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
  • 到此还不能直接编译工程!因为编译工程之前,需要先在该终端运行esp-idf目录下的export.sh脚本,之后就可以使用idf.py命令编译、烧录了。
  • 这里需要注意,换一个终端需要重新运行export.sh脚本(具体为何可以阅读该脚本),所以为了避免我们每次都需要进入esp-idf目录下运行该脚本的麻烦,所以需要设置环境变量,之后就可以不依靠esp-idf目录,起到esp-idf和工程分离的作用。

三、配置环境变量🖖

环境变量可以配到.profile、.bashrc、.zprofile里,这里配置到位于home里的./bashrc里,bash每次启动时都会加载。

  1. 设置环境变量 .bashrc
sudo vim ~/.bashrc 
  1. 在末尾增加以下
export IDF_PATH=~/esp/esp-idf
alias get_idf='. $IDF_PATH/export.sh'

IDF_PATH: esp-idf目录的路径,在一些脚本里都会使用。
get_idf:添加命令的别名,之后不需要再去esp-idf目录下运行export.sh,运行 get_idf 即可。

四、编译工程🥭

现在可以进入到hello_world里进行编译了。

  1. 编译工程需要用到idf.py,后续的烧录、调用监视器等都是用此工具。
  2. 但使用idf.py需要执行export.sh脚本,因为上一步把执行该脚本的指令已经添加了环境变量,所以只需要调用get_idf即可。
  3. 如果调用get_idf提示 ‘未找到命令’,可能因为没有配置好环境变量。
  4. 之后终端再输入get_idf
  5. 终端提示如下,可以使用idf.py工具了。
Done! You can now compile ESP-IDF projects.
Go to the project directory and run:

  idf.py build
  • 选择目标芯片
idf.py set-target esp32c3
  • 编译工程
idf.py build
  • 终端提示如下编译成功
......
r/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/blink.bin
or run 'idf.py -p (PORT) flash'

之后可以在这基础上一些列步骤可以写成shell脚本

五、连接串口,烧录程序 🍾

  1. 连接开发板到ubuntu下,查看dev下的所有tty设备
ls /dev/tty*
  1. 会显示很多tty开头的字符设备,不同的电脑或开发板会有差异,我这里开发板的串口是ttyUSB0
  2. 之后下载到flash并打开监视器查看log的输出,快捷键Ctrl+] 退出IDF监视器。
idf.py -p /dev/ttyUSB0 -b 1152000 flash monitor 

-p: 指定端口
-b: 指定烧录波特率 1152000
monitor:IDF监视器

  1. 下载失败可能是没有对串口字符设备没有读写的权限,可以直接把ttyUSB的权限开到最大,但不是长久的解决方法。
  2. 将用户添加到 dialout 组,从而获许读写权限:
sudo usermod -a -G dialout $USER

或者

sudo usermod -a -G uucp $USER
  1. 更多有关 idf.py 参数的详情,请见 idf.py。

六、使用VsCode开发

VSCode使用SSH无密码连接Ubuntu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/596792.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

P8800 [蓝桥杯 2022 国 B] 卡牌

P8800 [蓝桥杯 2022 国 B] 卡牌 分析 “最多” -- 二分 1.二分区间(凑齐的卡牌套数): l:a[]min;r:(a[]b[])max 2.check(x): (1)for循环内: 判断x - a[i…

Enhancing Diffusion——利用三维透视几何约束增强扩散模型

概述 透视在艺术中被广泛研究,但现代高质量图像生成方法却缺乏透视精度。新的生成模型引入了几何约束,通过训练过程提高透视精度。这样可以生成更逼真的图像,并提高相关深度估计模型的性能。 最近的图像生成技术使研究人员能够创造性地进行…

茅台葡萄酒打出节日新式营销“组合拳”,两月内落地品鉴会超千桌

执笔 | 尼 奥 编辑 | 古利特 2024年1-3月酒类进出口数据显示,葡萄酒进口量微增3.66%,进口额同比下滑11%,一季度整体跌势大缓,逐步走出普遍低迷的行情。与之相反的是,作为国产葡萄酒代表的茅台葡萄酒继续保持向上的战…

【C++】 认识多态 + 多态的构成条件详细讲解

前言 C 目录 1. 多态的概念2 多态的定义及实现2 .1 虚函数:2 .2 虚函数的重写:2 .2.1 虚函数重写的两个例外: 2 .3 多态的两个条件(重点)2 .4 析构函数为啥写成虚函数 3 新增的两个关键字3.1 final的使用:3…

线程详解(接上篇博客)

目录 1.生产者消费者模型; 2.基于环形队列的生产者消费者模型; 3.线程池; 4.STL, 智能指针, 线程安全; 5.读者写者问题. 前言: 本篇博客博主五一假期都在肝的一篇, 希望xdm点点三连, 博主感谢了 onz !!! 1.生产者消费者模型 321原则:(便于记忆) 3是指3种关系: 生产者和生产…

赚钱的背后逻辑!2024创业干什么最赚钱?2024创业方向!2024普通人的出路!2024普通人最有前景的行业!

钱根本不是赚来的。钱,是你帮别人解决问题后,对方给你的回报。什么时候把这句话理解透了,钱就会反过来追你。 问题就是每个人的痛点,痛点就是需求,男人怕穷,女人爱美,老人怕病,小孩怕…

OpenHarmony实战开发-管理位置权限

Web组件提供位置权限管理能力。开发者可以通过onGeolocationShow()接口对某个网站进行位置权限管理。Web组件根据接口响应结果,决定是否赋予前端页面权限。获取设备位置,需要开发者配置ohos.permission.LOCATION,ohos.permission.APPROXIMATE…

面试笔记——类加载器

基础 类加载器:用于装载字节码文件(.class文件)运行时数据区:用于分配存储空间执行引擎:执行字节码文件或本地方法垃圾回收器:用于对JVM中的垃圾内容进行回收 类加载器 :JVM只会运行二进制文件,类加载器的…

LLM——用于微调预训练大型语言模型(LLM)的GPU内存优化与微调

前言 GPT-4、Bloom 和 LLaMA 等大型语言模型(LLM)通过扩展至数十亿参数,实现了卓越的性能。然而,这些模型因其庞大的内存需求,在部署进行推理或微调时面临挑战。这里将探讨关于内存的优化技术,旨在估计并优…

2025第23届太原煤炭(能源)工业技术与装备展览会

第二十三届太原煤炭(能源)工业技术与装备展览会 邀 请 函 指导单位: 中国煤炭工业协会 主办单位:山西省煤炭工业协会 承办单位:太原奇新展览有限公司 展览时间:2025年4月22-24日 展览地点&#xff1a…

jenkins+gitlab+sonar自由风格项目配置

新建项目&基本配置 gitlab侧配置 sonar.projectKeytest_sonar sonar.projectNametest_sonar sonar.projectVersion1.0 sonar.sources. sonar.exclusionssrc/layout/** sonar.sourceEncodingUTF-8 sonar.nodejs.executable/app/nodejs/node-v16.20.2-linux-x64/bin/node配置…

cURL:命令行下的网络工具

序言 在当今互联网时代,我们经常需要与远程服务器通信,获取数据、发送请求或下载文件。在这些情况下,cURL 是一个强大而灵活的工具,它允许我们通过命令行进行各种类型的网络交互。本文将深入探讨 cURL 的基本用法以及一些高级功能…

智能AI摄像头项目

项目概要 硬件说明:易百纳rv1126 38板,易百纳GC2053摄像头,拓展版(自绘),屏幕驱动板(自绘),3.1inch mipi屏,FT5316触摸屏 开发环境 硬件分析 开发环境及sd…

数据结构十一:数组相关经典面试题

本篇博客详细介绍分析数组/顺序表常见的面试题,对于前面所学知识进行一个巩固,同时介绍一些力扣刷题中的一些概念:如:输出型参数等,在刷题中培养自己的编程思维,掌握常见的编程套路,形成题感&am…

KernelSU 如何不通过模块,直接修改系统分区

刚刚看了术哥发的视频,发现kernelSU通过挂载OverlayFS实现无需模块,即可直接修改系统分区,很是方便,并且安全性也很高,于是便有了这篇文章。 下面的教程与原视频存在差异,建议观看原视频后再结合本文章进行操作。 在未进行修改前,我们打开/system/文件夹,并在里面创建…

Junit 测试中如何对异常进行断言

本文对在 Junit 测试中如何对异常进行断言的几种方法进行说明。 使用 Junit 5 如果你使用 Junit 5 的话,你可以直接使用 assertThrows 方法来对异常进行断言。 代码如下: Exception exception = assertThrows(NumberFormatException.class, () -> {new Integer("on…

fiscobcos 3.x linux安装与java简单调用

所用环境 vmware 16 Pro centos7.6 jdk11.0.6 ideal 2022 1、安装fiscobcos # 创建操作目录 # cd ~ && mkdir -p fisco && cd fisco# 下载建链脚本 # curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v3.6.0/build_chain.sh &a…

Spring Security + JWT 实现登录认证和权限控制

Spring Security JWT 实现登录认证和权限控制 准备步骤 准备好一些常用的工具类,比如jwtUtil,redisUtil等。引入数据库,mybatis等,配置好controller,service,mapper,保证能够正常的数据请求。…

【python】条件语句与循环语句

目录 一.条件语句 1.定义 2.条件语句格式 (1)if (2)if-else (3)elif功能 (4)if嵌套使用 3.猜拳游戏 二.循环语句 1. while循环 2.while嵌套 3.for循环 4.break和conti…

k8s部署skywalking(helm)

官方文档 官方文档说明:Backend setup | Apache SkyWalking官方helm源码:apache/skywalking-helm官方下载(包括agent、apm):Downloads | Apache SkyWalking 部署 根据官方helm提示,选择你自己部署的方式&#xff0c…
最新文章