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

ESP32-IDF 在 Ubuntu 下的配置

目录

  • 一、安装准备
  • 二、获取 ESP-IDF
  • 三、设置工具
  • 四、使用案例


参考资料:官方文档:Linux 和 macOS 平台工具链的标准设置。

一、安装准备

参照官方文档,首先下载编译 ESP-IDF 所需要的软件包:

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

二、获取 ESP-IDF

首先创建一个目录用来作为 esp32 的工作目录:

[projectsauron]:~$ mkdir esp32_idf
[projectsauron]:~$ cd esp32_idf/

为了解决国内开发者从 Github 克隆 esp 相关仓库慢的问题,官方已将 esp-idf 和部分重要仓库及其关联的子模块镜像到了 jihu,这些仓库将自动从原始仓库进行同步。

所以先获取官方的工具:(相关信息见 乐鑫开源/esp-gitee-tools)

[projectsauron]:~/esp32_idf$ git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

使用如下命令即可使用镜像的 URL:

[projectsauron]:~/esp32_idf$ . ./esp-gitee-tools/jihu-mirror.sh set 

然后就可以克隆远程仓库了:(经过上面的设置后,很快就可以下好了)

[projectsauron]:~/esp32_idf$ git clone -b v5.3 --recursive https://github.com/espressif/esp-idf.git

三、设置工具

首先,如果 python 没有换国内源的话,下载速度会非常慢,而且很容易下载失败,所以先给 pip 换国内源:

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com

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

[projectsauron]:~/esp32_idf$ cd ~/esp/esp-idf
[projectsauron]:~/esp32_idf/esp-idf$ ./install.sh espc3

注意,./install.sh espc3 后面跟的参数是你所要开发的 ESP32 的芯片型号;当然一次性也可以定多个目标,比如:./install.sh esp32,esp32s2;如果需要一次性为所有支持的目标芯片安装工具,可以运行如下命令:./install.sh all

可选的芯片如下:esp32 esp32s2 esp32c3 esp32s3 esp32c2 esp32c6 esp32h2 esp32p4 esp32c5 esp32c61

如果途中发送了错误,就执行如下命令:

rm -rf ~/.espressif/

然后再重新执行上面的下载脚本即可。

下载完后,最终显示如下:

注意,在每次刚打开终端是,先执行如下命令才能就行编译:

[projectsauron]:~/esp32_idf/esp-idf$ . ./export.sh

四、使用案例

我这里先直接使用官方的例程进行编译运行:

[projectsauron]:~/esp32_idf$ cp -r ./esp-idf/examples/get-started/hello_world/ .
[projectsauron]:~/esp32_idf$ cd hello_world/

注意,编译时要在对应的目录里进行

首先要选择目标芯片(选择自己的芯片型号):

[projectsauron]:~/esp32_idf/hello_world$ idf.py set-target esp32c3

然后运行工程配置工具 menuconfig:

[projectsauron]:~/esp32_idf/hello_world$ idf.py menuconfig

大家根据自己的芯片信号进行配置,配置界面如下:

按下 J、K 键分别是向下、向上移动,H 键是返回键,L 键或空格键是选中。

我的设备是 ESP32-C3,这里改一个配置就可以了:进入 Serial flasher config -> Flash size(2MB)


将光标移到 4 MB,按下空格即可。

然后按 S 键保存,再按下 ESC 键或 q 键即可退出。

现在就配置完成,可以进行编译了,运行如下命令可以编译应用程序和所有 ESP-IDF 组件,接着生成引导加载程序、分区表和应用程序二进制文件。:

[projectsauron]:~/esp32_idf/hello_world$ idf.py build

编译完成结果如下:


然后将开发板连接到电脑(我是在 VMware 下运行的 Ubuntu):

连接上开发板后,VMware 弹出如下窗口,选中连接到主机:

点击 VMware 右下角的图标,就可以将开发板连接到虚拟机了:


最后,通过如下命令将刚才生成的二进制文件烧录到开发板上,并同时打开监视器,监视 “hello_world” 工程的运行情况。

[projectsauron]:~/esp32_idf/hello_world$ idf.py flash monitor

结果如下则表示烧录成功:

最后,按下 Ctrl+] 即可退出。


如果想自己创建一个工程项目,可以使用如下命令:

[projectsauron]:~/esp32_idf$ idf.py create-project test

该命令表示创建一个名为 test 的工程,然后在文件 ,./test/main/test.c 下写自己的代码即可。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【xilinx】Vivado 成功运行Ubuntu需要哪些 文件?
  • 微软RDL远程代码执行超高危漏洞(CVE-2024-38077)漏洞检测排查方式
  • JavaSE基础(12)——文件、递归、IO流
  • 未知单播泛洪原因
  • 日志审计Graylog 使用教程-kafka收取消息
  • 【数据结构】一篇讲清楚什么是堆? 带图食用超详细~
  • go-zero接入skywalking链路追踪
  • C语言高手参考手册:函数进阶技巧
  • C++基础面试题 | C++中值传递和引用传递的区别?
  • 基于Kotlin Multiplatform的鸿蒙跨平台开发实践
  • Leetcode 2760.最长奇偶子数组
  • Linux:Linux多线程
  • 前端打字效果
  • 基于langchain的prompt指令代码编写
  • 为什么企业跨国组网建议用SD-WAN?
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【React系列】如何构建React应用程序
  • Android框架之Volley
  • Angular 4.x 动态创建组件
  • AWS实战 - 利用IAM对S3做访问控制
  • Fundebug计费标准解释:事件数是如何定义的?
  • JavaScript 一些 DOM 的知识点
  • Java读取Properties文件的六种方法
  • java中的hashCode
  • Leetcode 27 Remove Element
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • React Native移动开发实战-3-实现页面间的数据传递
  • Redux 中间件分析
  • TypeScript迭代器
  • 机器学习学习笔记一
  • 老板让我十分钟上手nx-admin
  • 听说你叫Java(二)–Servlet请求
  • 一些css基础学习笔记
  • 阿里云移动端播放器高级功能介绍
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • # 安徽锐锋科技IDMS系统简介
  • $.ajax()参数及用法
  • (1)Android开发优化---------UI优化
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (day18) leetcode 204.计数质数
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (搬运以学习)flask 上下文的实现
  • (不用互三)AI绘画工具应该如何选择
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (四)Controller接口控制器详解(三)
  • (四)JPA - JQPL 实现增删改查
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转)程序员疫苗:代码注入
  • .NET CORE Aws S3 使用
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 获取url的方法