ESP32-idf學習(一)搭建環境和點燈

一、前言

先說一下查到的數據(不保證準確):

1、連續四年Wi-Fi MCU全球市場份額第一,產品應用于智能家居、工業自動化、醫療健康等泛IoT領域?,2024 年營收突破 20 億元(同比 +40%),凈利潤增長 149%,毛利率穩定在 40% 以上?

2、GitHub上基于樂鑫芯片的開源項目超55,000個,C語言生態活躍度全球領先?

3、ESP8266、ESP32 等系列芯片長期占據市場主流,累計出貨量超 10 億顆,驗證了高穩定性和成本優勢?

之前接觸樂鑫最多的還是8266,但都是搭配主mcu用的AT指令來開發,基本沒怎么接觸過樂鑫的安卓或者idf這些開發環境。感覺現在樂鑫已經是非常主流的產品,手上剛好有一塊8266和2塊合宙的espc3開發板在吃灰,就用c3來學習一下。

二、搭建環境

1、硬件方面

用的是合宙的ESP32-C3,售價僅9.9元(含稅包郵),是同類產品中價格最低的RISC-V架構Wi-Fi/BLE雙模開發板?,已經沒有很久了!不得不說我是趕上了好時候,當時就盯著合宙的開發板,有很多沒買現在都有點后悔。當時我買來也有做過開發,但當時是用的合宙的luat,他們寫的sdk,lua用習慣之后還挺好用的,后來換公司之后就沒用過,現在逐漸忘記了。

2、軟件方面

現在搭建的是idf的環境,而不是合宙的luat

環境我很久之前就搭建過,但我記得我只是用vscode下載了ESP-IDF這個插件,但git和Python這些我電腦之前都有,所以我也不知道是否下載這個插件就可以。

下載插件之后點圖標然后點ADVANCED,服務器選Espressif

我的環境是5.4,當時選了最新的版本安裝。

這里有一篇文章是比較詳細的,windows和linux環境下都有,跟著操作問題就不大

ESP32-C3 VScode開發環境搭建(基于ESP-IDF—Windows和Ubuntu雙環境)-阿里云開發者社區

三、例程選擇

1、打開例程

安裝好之后點插件會彈出這個界面,點例程

選剛剛下載的框架

點這個gpio例程

點擊后右邊就有很詳細的說明

然后點藍色的創建例程,選擇文件夾保存就行

2、查看例程

查看例程的main函數,初始化、然后創建gpio的測試任務,都很清晰

有做輸出的和輸入的

3、編譯

先把串口和芯片類型選好

然后點編譯

一開始我編譯是報錯了,然后我deepseek了一下,是因為我的路徑5,4有個逗號,

因為之前裝的,裝的時候是我自己輸的5,4還是默認是這個 我忘記了,改一下就好

我就重新配置了一下,改成5_4

然后編譯成功了,現在變成這樣了,我記得以前是沒有這個框的

四、修改例程

1、led的io

合宙的資料有介紹,燈的io是12和13

點進gpio.h看一下這個輸出io的函數

找到io的結構體

2、初始化

我只是驅動2個led,下邊的暫時都用不上,直接先屏蔽了

然后依葫蘆畫瓢就可以了

3、主循環

循環里就將io改一下就行

四、燒錄驗證

編譯燒錄程序,我這塊開發板是用uart燒錄了,jtag還沒看是怎么接

這是燒錄完的提示

燈的效果是閃爍的,視頻就沒什么必要整了,放個圖片讓大家知道燈亮起來就好^_^

五、總結

總的來說,點燈的這個過程還是挺簡單的,但每個品牌的芯片第一步搭建環境總會多多少少都有磕絆,好處是玩這個的人多,網上一搜基本就能搜出來什么問題。

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

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

相關文章

hooker frida版just_trust_me.js 2025升級 支持boringssl unpinning

曾幾何時,我翻版了 Xposed 的 just_trust_me.apk, just_trust_me.js 腳本仿佛是一張通行證,讓我們在 SSL Pinning 的高墻前輕松穿越。 但時代變了。BoringSSL、Cronet、靜態 inline hook、動態 verify callback……一切都變得更加隱蔽和棘手…

通信算法之269 : OFDM信號的循環自相關特性用于無人機圖傳信號識別

OFDM信號的循環自相關特性是其循環平穩性的核心體現,如下: [相關仿真代碼,聯系,提供] 一、循環自相關特性來源 ?循環前綴引入周期性? OFDM符號通過添加循環前綴(CP)形成符號周期結構,導致信號具有循環平穩性?26。每個符號的CP與尾部數據重復,在時延等于FFT長度(N…

vue3環境搭建、nodejs22.x安裝、yarn 1全局安裝、npm切換yarn 1、yarn 1 切換npm

vue3環境搭建 node.js 安裝 驗證nodejs是否安裝成功 # 檢測node.js 是否安裝成功----cmd命令提示符中執行 node -v npm -v 設置全局安裝包保存路徑、全局裝包緩存路徑 在node.js 安裝路徑下 創建 node_global 和 node_cache # 設置npm全局安裝包保存路徑(新版本…

基于尚硅谷FreeRTOS視頻筆記——6—滴答時鐘—上下文切換

FreeRTOS滴答 FreeRTOS需要有一個時鐘參照,并且這個時鐘不會被輕易打斷,所以最好選擇systick 為什么需要時間參照 就是在高優先級任務進入阻塞態后,也可以理解為進入delay()函數后,需要有一個時間參照&…

使用最新threejs復刻經典貪吃蛇游戲的3D版,附完整源碼

基類Entity 建立基類Entity,實現投影能力、動畫入場效果(從小變大的彈性動畫)、計算自己在地圖格位置的方法。 // 導入gsap動畫庫(用于創建補間動畫) import gsap from gsap// 定義Entity基類 export default class …

Redis——網絡模型之IO講解

目錄 前言 1.用戶空間和內核空間 1.2用戶空間和內核空間的切換 1.3切換過程 2.阻塞IO 3.非阻塞IO 4.IO多路復用 4.1.IO多路復用過程 4.2.IO多路復用監聽方式 4.3.IO多路復用-select 4.4.IO多路復用-poll 4.5.IO多路復用-epoll 4.6.select poll epoll總結 4.7.IO多…

Jenkins 多分支流水線: 如何創建用于 Jenkins 狀態檢查的 GitHub 應用

使用 Jenkins 多分支流水線時,您可以將狀態檢查與 GitHub 拉取請求集成。 以下是狀態檢查的示例 要實現這些類型的狀態檢查,您需要創建一個與 Jenkins 主實例集成的 GitHub 應用。 在本博客中,我們將介紹如何創建一個 GitHub 應用&#xff…

大模型如何突破“知識盲區”?一場靜悄悄的技術革命正在發生

大模型如何突破“知識盲區”?一場靜悄悄的技術革命正在發生 凌晨三點,程序員李然盯著屏幕上的報錯信息苦笑。他正在調試的智能客服系統,又一次把"北京今日體感溫度"回答成了"建議穿羽絨服"。這不是代碼錯誤,…

【SQL Server】數據探查工具1.0研發可行性方案

👉 點擊關注不迷路 👉 點擊關注不迷路 👉 點擊關注不迷路 想搶先解鎖數據自由的寶子,速速戳我!評論區蹲一波 “蹲蹲”,揪人嘮嘮你的超實用需求! 【SQL Server】數據探查工具1.0研發可行性方案…

Qt GUI 庫總結

Qt GUI 庫總結 Qt GUI 庫(QtGui)是 Qt 框架中負責圖形用戶界面(GUI)開發的核心模塊。本文將一步步詳解 QtGui,從基礎入門到高級應用,幫助你全面掌握其功能。以下內容包括環境配置、基本功能、核心特性及進…

如何在米爾-STM32MP257開發板上部署環境監測系統

本文將介紹基于米爾電子MYD-LD25X開發板(米爾基于STM35MP257開發板)的環境監測系統方案測試。 摘自優秀創作者-lugl4313820 一、前言 環境監測是當前很多場景需要的項目,剛好我正在論壇參與的一個項目:Thingy:91X 蜂窩物聯網原型…

網絡互連與互聯網3

1.SMTP簡單郵件傳輸協議,用于發送電子郵件,默認情況下是明文傳輸,沒有加密機制。 SSL是一種安全協議,對電子郵件進行加密傳輸。 POP3主要用于接收電子郵件 IMAP用于接收電子郵件 2.采用存儲-轉發方式處理信號的設備是交換機 …

DICOM通訊(ACSE->DIMSE->Worklist)

DICOM 通訊協議中的 ACSE → DIMSE → Worklist 這條通訊鏈路。DICOM 通訊棧本身是一個多層的協議結構,就像 OSI 模型一樣,逐層封裝功能。 一、DICOM 通訊協議棧總體架構 DICOM 通訊使用 TCP/IP 建立連接,其上面封裝了多個協議層次&#xf…

優化自旋鎖的實現

在《C11實現一個自旋鎖》介紹了分別使用TAS和CAS算法實現自旋鎖的方案,以及它們的優缺點。TAS算法雖然實現簡單,但是因為每次自旋時都要導致一場內存總線流量風暴,對全局系統影響很大,一般都要對它進行優化,以降低對全…

Excel 中讓表格內容自適應列寬和行高

Excel 中讓表格內容自適應列寬和行高 目錄 Excel 中讓表格內容自適應列寬和行高自適應列寬自適應行高在Excel中讓表格內容自適應列寬和行高,可參考以下操作: 自適應列寬 方法一:手動調整 選中需要調整列寬的列(如果是整個表格,可點擊表格左上角行號和列號交叉處的三角形全…

JWT令牌:實現安全會話跟蹤與登錄認證的利器

摘要:本文深入探討了JWT令牌在實現會話跟蹤和登錄認證方面的應用,詳細介紹了JWT令牌的概念、組成、生成與校驗方法,以及在實際案例中如何通過JWT令牌進行會話跟蹤和登錄認證的具體實現步驟,為系統的安全認證機制提供了全面且深入的…

Mybtis和Mybatis-Plus區別

MyBatis 和 MyBatis-Plus 是 Java 中常用的持久層框架,MyBatis-Plus 是在 MyBatis 基礎上增強的工具包,讓開發更便捷、高效。下面是兩者主要的區別: ? 核心區別總結: 特性MyBatisMyBatis-Plus配置復雜度需要手寫大量 XML 或注解…

JavaScript 性能優化實戰

一、代碼執行效率優化 1. 減少全局變量的使用 全局變量在 JavaScript 中會掛載在全局對象(瀏覽器環境下是window,Node.js 環境下是global)上,頻繁訪問全局變量會增加作用域鏈的查找時間。 // 反例:使用全局變量 var globalVar = example; function someFunction() {con…

學習筆記十六——Rust Monad從頭學

🧠 零基礎也能懂的 Rust Monad:逐步拆解 三大定律通俗講解 實戰技巧 📣 第一部分:Monad 是什么? Monad 是一種“包值 鏈操作 保持結構”的代碼模式,用來處理帶上下文的值,并方便連續處理。 …

PL/SQL登錄慢,程序連接Oracle 提示無法連接或無監聽

PL/SQL登錄慢,程序連接Oracle 提示無法連接或無監聽 錯誤提示:ORA-12541: TNS: 無監聽程序 的解決辦法, 現象:PL/SQL登錄慢,程序連接Oracle 提示無法連接或無監聽 監聽已經正常開起,但還是PL/SQL登錄慢或…