esp32 esp-idf ubuntu22环境

本文介绍如何在Ubuntu 22.04上安装配置乐鑫ESP-IDF开发环境,包括虚拟机安装、软件包安装、esp-idf克隆及子模块更新等步骤。
1、参考链接
2、虚拟机
  • VMware 16 + Ubuntu22.04 Desktop 一路next安装。不过我是中途勾选了最小安装
  • 更换下载源
    在这里插入图片描述
  • 更新
sudo apt-get update

有时候装完了发现虚拟机外面的windows主机复制不了东西过去,则需要手动装vmware tool

sudo apt install open-vm-tools
sudo apt install open-vm-tools-desktop
3、下载安装
  • 安装准备
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

发现python --version无效,补一个

sudo apt install python-is-python3
  • 获取esp-idf
git clone https://gitee.com/EspressifSystems/esp-idf.git

切换到想要的版本分支去,我这里用v4.4.3

cd esp-idf

git checkout v4.4.3 
  • 获取esp-gitee-tools
#返回esp-idf同级目录
cd ..

git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

运行工具来去esp-idf的子模块。 ../esp-idf/就是前面esp-idf放的位置

cd esp-gitee-tools

./submodule-update.sh ../esp-idf/
  • 安装esp-idf
cd ../esp-idf/
#加速下载过程
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
#安装
./install.sh

如果有科学上网工具,也可以先开代理。没有就算了,问题不大

# 根据实际IP(windows主机)和端口(科学工具)修改地址
export http_proxy=http://192.168.31.102:7890  
export https_proxy=http://192.168.31.102:7890
export all_proxy=sock5://192.168.31.102:7890
export ALL_PROXY=sock5://192.168.31.102:7890
4、成功状态

在这里插入图片描述

  • 跟着提示执行一下
#运行
. ./export.sh 
#看看版本
idf.py --version

在这里插入图片描述

  • 接下来就是找到自带的示例程序,随便编译一下试试水
cd examples/get-started/hello_world
#编译
idf.py build

完成如下:
在这里插入图片描述

### 配置VSCode中ESP32ESP-IDF开发环境以支持LVGL 配置VSCode下的ESP-IDF开发环境并支持LVGL需要完成以下任务:安装必要的工具链、配置VSCode插件、设置项目结构以及集成LVGL库。以下是详细的说明: #### 1. 安装ESP-IDF工具链 在开始之前,确保系统已安装ESP-IDF所需的工具链。对于基于Ubuntu的系统,可以通过官方脚本自动安装[^2]: ```bash ./install.sh ``` 运行此命令后,ESP-IDF的工具链和依赖项将被正确安装。 #### 2. 安装VSCode及ESP-IDF插件 安装Visual Studio Code,并通过扩展市场搜索“ESP-IDF”插件进行安装。随着版本更新,ESP-IDF插件V1.0.0及以上版本已经修复了大多数安装失败的问题,因此可以顺利使用内置终端[^3]。 #### 3. 配置ESP-IDF环境变量 在安装完成后,需初始化ESP-IDF环境变量。可以通过以下命令完成: ```bash . $IDF_PATH/export.sh ``` 该命令将设置必要的环境变量,如`PATH`和`IDF_PATH`[^1]。 #### 4. 创建ESP-IDF项目 使用ESP-IDF自带的模板创建一个新项目: ```bash idf.py create-project my_lvgl_project cd my_lvgl_project ``` 这将生成一个基础的ESP-IDF项目结构。 #### 5. 集成LVGL库 LVGL(Light and Versatile Graphics Library)是一个轻量级的图形库,适合嵌入式设备。为了将其集成到项目中,可以参考以下步骤: - **下载LVGL源码**:从LVGL的GitHub仓库克隆最新版本的代码: ```bash git clone https://github.com/lvgl/lvgl.git ``` - **添加LVGL到组件目录**:将LVGL源码复制到项目的`components`目录下: ```bash cp -r lvgl components/ ``` - **修改CMakeLists.txt**:在主项目的`CMakeLists.txt`文件中添加LVGL组件: ```cmake set(EXTRA_COMPONENT_DIRS ${PROJECT_PATH}/components) ``` #### 6. 配置头文件路径 如果VSCode显示红色波浪线,可能是因为未正确解析头文件路径。通过以下方法解决: - 确保`.vscode/c_cpp_properties.json`文件中包含正确的`includePath`。 - 在VSCode中重新加载窗口或重启编辑器以应用更改。 #### 7. 测试项目 完成上述配置后,可以编译并上传代码到ESP32设备: ```bash idf.py build idf.py flash idf.py monitor ``` #### 示例代码:简单的LVGL应用 以下是一个简单的LVGL示例代码,展示如何初始化屏幕并绘制一个按钮: ```c #include "lvgl/lvgl.h" #include "driver/gpio.h" void app_main(void) { // 初始化LVGL lv_init(); // 初始化显示屏驱动(根据硬件调整) static lv_disp_buf_t disp_buf; static lv_color_t buf[LV_HOR_RES_MAX * 10]; lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); lv_disp_drv_t disp_drv; lv_disp_drv_init(&disp_drv); disp_drv.buffer = &disp_buf; lv_disp_drv_register(&disp_drv); // 创建一个按钮 lv_obj_t *btn = lv_btn_create(lv_scr_act()); lv_obj_set_size(btn, 100, 50); lv_obj_align(btn, LV_ALIGN_CENTER, 0, 0); // 添加标签到按钮 lv_obj_t *label = lv_label_create(btn); lv_label_set_text(label, "Hello"); } ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值