ESP32開發之ubuntu環境搭建

1. 在Ubuntu官網下載Ubuntu server 20.04版本https://releases.ubuntu.com/20.04.6/
2. 在vmware下安裝Ubuntu
3. 改Ubuntu靜態IP
$ sudo vi /etc/netplan/00-installer-config.yaml

# This is the network config written by ‘subiquity’
network:
renderer: networkd
ethernets:
ens33:
# dhcp4: true
addresses:
- 192.168.4.251/24
nameservers:
addresses: [4.2.2.2,8.8.8.8]
routes:
- to: default
via: 192.168.4.1
version: 2

$ sudo netplan apply
$ ip addr show ens33
$ ip route show
$ reboot

3. 使用SecureCRT使用SSH遠程連接虛擬機的ubuntu
4. 安裝各種必要的工具
sudo apt-get install git wget flex bison gperf python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 net-tools
5. 新建esp32目錄并進入
$ mkdir esp32
$ cd esp32
6. 拉取gitee工具(原因是從官方下載大概率會失敗)
$ git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
7. 執行gitee工具切換鏡像腳本
$ cd esp-gitee-tools
$ ./jihu-mirror.sh set
8. 拉取esp-idf源碼
$ cd ..
$ git clone --recursive https://github.com/espressif/esp-idf.git
9. 切換esp-idf版本分支到v5.2
$ cd esp-idf
$ git checkout v5.2
$ git submodule update --init --recursive
如果提示失敗或有錯誤試下這句:../esp-gitee-tools/submodule-update.sh
10. 更換pip源
$ pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
$ pip config set global.trusted-host mirrors.aliyun.com
11. 安裝編譯工具
$ ../esp-gitee-tools/install.sh
12. 設置環境變量并將環境變量放到.bashrc中(這樣下次啟動后上一步設置的環境變量會重新加載)
$ source export.sh
$ echo "source ~/esp32/esp-idf/export.sh" >> ~/.bashrc
13. 設置USB串口權限(解決下載代碼時報USB串口權限問題)
$ sudo usermod -aG dialout usrname usrname需要換成你的用戶名
14. 重啟
15. windows安裝VSCODE,并安裝如下插件

在這里插入圖片描述

16. 通過以上插件遠程連接ubuntu

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

這樣就可以建立遠程連接了,代碼就可以在vscode進行查看和更改,但是我們會發現每次都需要輸入密碼,我們通過如下方式解決

解決使用VsCode遠程ssh連接虛擬機ubuntu需要重復輸入密碼

17. VSCode中為遠程主機安裝插件

在這里插入圖片描述

按照上圖依次安裝如下插件

在這里插入圖片描述

18. 進行插件配置
  • c/c++插件

在這里插入圖片描述
在這里插入圖片描述

  • 改ESP-IDF配置

鍵盤同時按下ctl+shift+p,在彈出的對話框輸入如下,這樣我們就可以任意查看和跳轉代碼位置了。

在這里插入圖片描述

19. 建立第一個工程
  • 使用vscode遠程連接虛擬機,在終端窗口進行操作

在這里插入圖片描述

  • 創建存放工程的目錄并進入目錄
mkdir esp32-prj
cd esp32-prj

在這里插入圖片描述

  • 使用命令創建工程
idf.py create-project helloworld

在這里插入圖片描述

  • 進入目錄更改目標芯片,一般默認為esp32
idf.py set-target esp32-s3

在這里插入圖片描述

  • 進行第一次編譯
idf.py build

在這里插入圖片描述
在這里插入圖片描述

  • 打開工程

在這里插入圖片描述

  • 如圖操作,這樣才可以方便的跳轉和查看代碼,每個新的工程都需要執行一次

在這里插入圖片描述

  • 編譯代碼

在這里插入圖片描述

  • 燒錄,先連接開發板,并保證開發板是連接到了虛擬機
idf.py flash

在這里插入圖片描述

  • 監視開發板執行情況
idf.py monitor

在這里插入圖片描述
在這里插入圖片描述
退出監控使用CTL+]組合鍵

  • 燒錄指令可以和監控指令可以放在一起執行
idf.py flash monitor

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76672.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76672.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76672.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTTP 1.1 比 HTTP1.0 多了什么?(詳盡版)

相較于HTTP 1.0,1.1 版本增加了以上特性: 1. 新增了連接管理即 keepalive,允許持久連接。 定義: Keepalive允許客戶端和服務器在完成一次請求-響應后,保持連接處于打開狀態,以便后續請求復用同一連接&am…

【深度學習】PyTorch實現VGG16模型及網絡層數學原理

一、Demo概述 代碼已附在文末 1.1 代碼功能 ? 實現VGG16網絡結構? 在CIFAR10數據集上訓練分類模型 1.2 環境配置 詳見【深度學習】Windows系統Anaconda CUDA cuDNN Pytorch環境配置 二、各網絡層概念 2.1 卷積層(nn.Conv2d) nn.Conv2d(in_cha…

解決RecyclerView在調用smoothScrollToPosition后最后一個item底部超出屏幕的問題

要解決RecyclerView在調用smoothScrollToPosition后最后一個item底部超出屏幕的問題,可以使用自定義的LinearSmoothScroller,使其底部對齊屏幕。步驟如下: 創建自定義的SmoothScroller類: 繼承LinearSmoothScroller并重寫getVerti…

k8s親和力和非親和力

在 Kubernetes 中,親和力(Affinity)和非親和力(Anti-Affinity)是用于控制 Pod 調度策略的機制,它們可以幫助優化資源利用率、提高應用性能和可用性。以下是親和力和非親和力的詳細解釋: 親和力…

開發一款游戲需要哪些崗位角色參與?

常見分類 1. 游戲策劃(Game Designer) 核心職責:設計游戲的玩法、規則、內容和整體體驗。 具體工作: 系統設計:設計游戲的戰斗、經濟、成長、社交等核心系統。 數值設計:平衡角色屬性、裝備數值、經濟系…

Asp.NET Core WebApi 創建帶鑒權機制的Api

構建一個包含 JWT(JSON Web Token)鑒權的 Web API 是一種常見的做法,用于保護 API 端點并驗證用戶身份。以下是一個基于 ASP.NET Core 的完整示例,展示如何實現 JWT 鑒權。 1. 創建 ASP.NET Core Web API 項目 使用 .NET CLI 或 …

Jenkins 發送釘釘消息

這里不介紹 Jenkins 的安裝,可以網上找到很多安裝教程,重點介紹如何集成釘釘消息。 需要提前準備釘釘機器人的 webhook 地址。(網上找下,很多教程) 下面開始配置釘釘機器人,登錄 Jenkins,下載 …

CentOS中離線安裝DockerCompos并用其部署Rabbitmq(使用離線導入導出docker鏡像方式)

場景 DockerDockerCompose實現部署jenkins,并實現jenkinsfile打包SpringBootVue流水線項目過程詳解、踩坑記錄(附鏡像資源、離線包資源下載): DockerDockerCompose實現部署jenkins,并實現jenkinsfile打包SpringBootVue流水線項目過程詳解、踩坑記錄(附鏡像資源、離…

stm32week11

stm32學習 八.stm32基礎 2.stm32內核和芯片 F1系統架構:4個主動單元和4個被動單元 AHB是內核高性能總線,APB是外圍總線 總線矩陣將總線和各個主動被動單元連到一起 ICode總線直接連接Flash接口,不需要經過總線矩陣 AHB:72MHz&am…

貪心算法:部分背包問題深度解析

簡介: 該Java代碼基于貪心算法實現了分數背包問題的求解,核心通過單位價值降序排序和分階段裝入策略實現最優解。首先對Product數組執行雙重循環冒泡排序,按wm(價值/重量比)從高到低重新排列物品;隨后分兩階段裝入:循環…

13. Langchain異步處理:提升應用性能的關鍵技巧

引言:從"順序等待"到"并行加速" 2025年某電商平臺引入LangChain異步處理后,大促期間訂單處理能力提升5倍,系統響應延遲降低70%。本文將基于LangChain的異步架構,詳解如何通過并行執行流式處理,讓…

ros2-rviz2控制unity仿真的6關節機械臂,探索從仿真到實際應用的過程

文章目錄 前言(Introduction)搭建開發環境(Setup Development Environment)在window中安裝Unity(Install Unity in window)創建Docker容器,并安裝相關軟件(Create Docker containers…

計算機組成原理筆記(十四)——3.4指令類型

一臺計算機的指令系統可以有上百條指令,這些指令按其功能可以分成幾種類型,下面分別介紹。 3.4.1數據傳送類指令 一、核心概念與功能定位 數據傳送類指令是計算機指令系統中最基礎的指令類型,負責在 寄存器、主存、I/O設備 之間高效復制數…

各開源協議一覽

在 GitHub 上,開源項目通常會使用一些常見的開源協議來定義項目的使用、修改和分發規則。以下是目前 GitHub 上最常見的幾種開源協議及其差異和示例說明: TL;DR 協議寬松程度是否強制開源專利保護適用場景MIT最寬松否無希望代碼被廣泛使用Apache 2.0寬松…

51c自動駕駛~合集17

我自己的原文哦~ https://blog.51cto.com/whaosoft/13793157 #匯聚感知、定位、規劃控制的自動駕駛系統 自動駕駛技術在應用到車輛上之后可以通過提高吞吐量來緩解道路擁堵,通過消除人為錯誤來提高道路安全性,并減輕駕駛員的駕駛負擔,從…

小程序開發指南

小程序開發指南 目錄 1. 小程序開發概述 1.1 什么是小程序1.2 小程序的優勢1.3 小程序的發展歷程 2. 開發準備工作 2.1 選擇開發平臺2.2 開發環境搭建2.3 開發模式選擇 3. 小程序開發流程 3.1 項目規劃3.2 界面設計3.3 代碼開發3.4 基本開發示例3.5 數據存儲3.6 網絡請求3.7 …

Day15:關于MySQL的編程技術——基礎知識

前言:先創建一個練習的數據庫和數據 1.創建數據庫并創建數據表的基本結構 -- 創建練習數據庫 CREATE DATABASE db_programming; USE db_programming;-- 創建員工表(包含各種數據類型) CREATE TABLE employees (emp_id INT PRIMARY KEY AUTO…

批處理腳本bat丨遍歷一個包含項目名稱的數組,并對每個文件中的項目執行 git pull 操作 (一鍵拉很多文件的代碼)

文章目錄 前言一、操作方式二、文件展示三、分析代碼結構四、代碼五、需要注意的潛在問題六、改進后的代碼七、改進說明八、感謝 前言 由于之前git服務部署在本地服務器,處于代碼安全角度考慮。領導讓我將所有的項目代碼手動物理備份一份并且發給他。 這種傻傻的操…

【C++】C與C++、C++內存空間、堆與棧

C嘎嘎嘎嘎嘎~ C與C的區別與聯系 C內存空間 int global_var; // 未初始化全局變量,BSS段 const char* str "Hello"; // 字符串常量text段 in數據段void func() {static int static_var; // 未初始化的靜態變量,數據段int local_var; …

舵機:機器人領域的“關節革命者”

機器人的技術,每一個細微的進步都可能引領一場行業變革。而在這場變革中,舵機作為機器人關節的核心部件,正悄然上演著一場革命性的應用風暴。從簡單的關節運動到復雜的姿態控制,舵機以其卓越的性能和無限的可能,重新定…