0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ESP32的接口不能隨便用,如何快速從Arduino過渡到ESP32的新手指南-進階篇

伊娃老師來了 ? 來源:伊娃來了 ? 作者:伊娃來了 ? 2023-12-12 15:54 ? 次閱讀

進階篇

接續(xù)如何快速從Arduino過渡到ESP32的新手指南-基礎(chǔ)篇,繼續(xù)了解ESP32的各種引腳接口吧!

beccbb68-9584-11ee-8850-92fbcf53809c.jpg

內(nèi)容介紹

1.SPI引腳

2.I2C引腳

3.UART引腳

4.RTC引腳

5.Strapping引腳

6.EN引腳

SPI引腳

引腳名稱 對應(yīng)腳位
VSPI_MOSI 23
VSPI_MISO 19
VSPI_CLK 18
VSPI_CS 5
HSPI_MOSI 13
HSPI_MISO 12
HSPI_CLK 14
HSPI_CS 15
CS 2

bed290b0-9584-11ee-8850-92fbcf53809c.jpg

SPI是什么

SPI(串行外設(shè)接口)是一種用于設(shè)備之間連接的技術(shù)。通過SPI,ESP32可以與其他同樣使用SPI連接的傳感器相互傳輸數(shù)據(jù)。

SPI的傳輸采用同步的時間線,也稱為共享時鐘信號,這有助于確保傳輸?shù)臄?shù)據(jù)準確一致。

SPI主要應(yīng)用于需要短距離、高速串行通信的場景,例如需要快速同步數(shù)據(jù)的顯示屏、SD卡讀取器、加速度傳感器等。

可以將SPI想象成一種精密的對話方式,其中主設(shè)備(ESP32)和 從設(shè)備(傳感器、顯示屏等)在共同的時鐘引導下,按照特定的規(guī)則交流信息。

在SPI通信中,通常有四個信號線:

1. MOSI(Master Out Slave In):主設(shè)備向從設(shè)備發(fā)送數(shù)據(jù)的線路。

2. MISO(Master In Slave Out):從設(shè)備向主設(shè)備發(fā)送數(shù)據(jù)的線路。

3. SCLK(Serial Clock):時鐘信號,用于同步主設(shè)備和從設(shè)備之間的數(shù)據(jù)傳輸。

4. SS/CS(Slave Select/Chip Select):選擇從設(shè)備的線路,用于告訴從設(shè)備何時準備好接收或發(fā)送數(shù)據(jù)。

SPI使用注意

避免沖突

當我們涉及到使用引腳時,尤其是在處理不是SPI接口的設(shè)備時,建議盡量避免直接使用SPI接口。這主要是因為在引入庫的過程中,通常會默認使用SPI接口的一些關(guān)鍵引腳,比如SCLK、MOSI、MISO,這些引腳通常會被預(yù)設(shè)為SPI功能,可能導致沖突。

可自定義SPI引腳

在ESP32中,你可以通過代碼調(diào)整SPI接口的配置,包括更改SCLK、MOSI、MISO等引腳。這為你提供了更大的靈活性,以適應(yīng)不同的硬件連接需求。

可共用引腳

如果你需要同時連接多個SPI接口的設(shè)備,可以共用SCLK、MOSI、MISO這些引腳,然后通過單獨的CS引腳來區(qū)分不同的設(shè)備。

VSPI和HSPI的選擇

在ESP32中,VSPI和HSPI是兩個可用的SPI接口,它們的功能是相同的。一些庫可能默認使用其中一個,多數(shù)是VSPI。

I2C引腳

bedea22e-9584-11ee-8850-92fbcf53809c.jpg

I2C是什么

I2C(Inter-Integrated Circuit)與SPI類似,也用于跟各種設(shè)備進行溝通。

設(shè)備彼此溝通的規(guī)則,我們通常會稱呼為串行通信協(xié)議。

I2C使用注意

I2C引腳

I2C只需要兩個引腳,不管連接幾個I2C設(shè)備都是使用SDASCL。這使得它在連接多個設(shè)備時非常方便,因為它占用的引腳相對較少。

I2C 與 SPI 的 SDA 不一樣

? SPI的SDA:在SPI通信中,SDA通常指的是MOSI(Master Out Slave In),全稱是"Master Out Slave In",表示主設(shè)備輸出數(shù)據(jù)給從設(shè)備。

? I2C的SDA:在I2C通信中,SDA表示Serial Data Line,全稱是"Serial Data Line",表示是用于雙向傳輸數(shù)據(jù)的串行數(shù)據(jù)線。

I2C 與 SPI 的 SCL 不一樣

? SPI的SCL:在SPI通信中,時鐘線通常稱為SCLK(Serial Clock),全稱是"Serial Clock"。SCLK用于同步數(shù)據(jù)的傳輸,主設(shè)備通過SCLK向從設(shè)備發(fā)送時鐘脈沖,以確保數(shù)據(jù)的有效傳輸。

? I2C的SCL:在I2C通信中,SCL表示Serial Clock Line,全稱是"Serial Clock Line"。I2C總線上的SCL同樣用于同步數(shù)據(jù)傳輸,主設(shè)備通過SCL向從設(shè)備發(fā)送時鐘信號。

如果一個設(shè)備使用I2C協(xié)議進行通信,那么它的SCL和SDA線就應(yīng)該連接到I2C總線上。同樣,如果一個設(shè)備使用SPI協(xié)議進行通信,那么它的SCLK、MISO、MOSI等線就應(yīng)該連接到SPI總線上。這兩者的線不能直接互連,否則通信將無法正常進行。

UART引腳

beee058e-9584-11ee-8850-92fbcf53809c.jpg

UART是什么

UART代表通用異步收發(fā)器(Universal Asynchronous Receiver/Transmitter)。與SPI、I2C一樣,是一種串行通信協(xié)議。

然而,與它們不同的是,UART沒有共享的時鐘信號。在UART通信中,發(fā)送和接收設(shè)備之間通過起始位、數(shù)據(jù)位、校驗位和停止位來協(xié)調(diào)數(shù)據(jù)的傳輸。

可以理解為,

? UART:通過相對的時間來同步信息

? SPI、I2C:通過絕對的時鐘信號來確保通信的同步。

在UART中,設(shè)備之間通過約定好的位序列來解釋和同步數(shù)據(jù)。這種異步的方式使得UART更加靈活,適用于一些不需要嚴格時鐘同步的場景。

UART使用注意

簡單來說,只用UART2,UART0不能用

UART0

USB連接,通常用于燒錄(flashing)和調(diào)試。

UART2

UART2可以連接到外部設(shè)備,如GPS、指紋傳感器、距離傳感器等,而不會影響燒錄和調(diào)試功能。

RTC引腳

bef7dba4-9584-11ee-8850-92fbcf53809c.jpg

RTC是什么

當我們使用 RTC(Real-Time Clock,實時時鐘)時,它實際上是一個獨立的時鐘系統(tǒng)。無論主電源是否關(guān)閉,RTC 都能夠持續(xù)供電,確保設(shè)備能夠在斷電狀態(tài)下仍然維持準確的時間。

在ESP32,我們通過RTC來喚醒待機狀態(tài)的設(shè)備來達到省電的功能。

在ESP32等設(shè)備上,利用RTC來喚醒待機狀態(tài)是一種常見的省電策略。待機狀態(tài)(或深度睡眠)是一種極低功耗的模式,其中主處理器被關(guān)閉,但RTC仍在運行,以確保設(shè)備能夠在預(yù)定的時間喚醒。這對于周期性地執(zhí)行任務(wù)、定時采集數(shù)據(jù)或在特定事件發(fā)生時喚醒設(shè)備都是非常有用的。

一些常見的應(yīng)用場景包括:

?定時喚醒:在預(yù)定的時間喚醒設(shè)備以執(zhí)行特定的任務(wù),例如數(shù)據(jù)采集、通信等。

?事件觸發(fā)喚醒:當某些特定事件發(fā)生時,通過RTC喚醒設(shè)備,以便立即響應(yīng)該事件。

?電池供電設(shè)備的省電模式:在電池供電的設(shè)備中,RTC的使用可以幫助最小化功耗,延長電池壽命。

Strapping 引腳

bf040ba4-9584-11ee-8850-92fbcf53809c.jpg

在ESP32中,存在兩種重要的模式,分別是BOOT模式FLASH模式。BOOT模式用于運行ESP32上的程序,而FLASH模式用于上傳程序到ESP32。Strapping pins(引腳配置開關(guān))用于配置ESP32的工作模式。通常情況下,帶有內(nèi)置USB/Serial的開發(fā)板會自動將這些引腳配置到正確的狀態(tài),以支持燒錄或啟動。然而,如果其他設(shè)備使用這些引腳,可能會導致ESP32進入錯誤的模式。

具體而言,Strapping pins是一組用于配置啟動模式的引腳。在帶有內(nèi)置USB/Serial的開發(fā)板上,系統(tǒng)會根據(jù)需要自動配置這些引腳。但是,當其他設(shè)備使用相同的引腳時,可能會影響ESP32的啟動模式,因此在設(shè)計硬件連接時需要特別注意。

EN引腳

bf11b2c2-9584-11ee-8850-92fbcf53809c.jpg

對于ESP32,EN(Enable)引腳是用于控制芯片的啟用和禁用的關(guān)鍵引腳。以下是關(guān)于EN引腳的一些基本信息:

?默認狀態(tài):EN引腳默認是拉高的(pulled high),表示芯片處于啟用狀態(tài)。當EN引腳被拉高時,ESP32可以正常運行。

?拉低禁用:當EN引腳被拉低時,芯片被禁用,即停止工作。拉低EN引腳通常會導致芯片斷電或進入低功耗模式,具體取決于系統(tǒng)的設(shè)計。

?復(fù)位功能:EN引腳還連接到一個按鈕開關(guān),通過按下按鈕將EN引腳拉低,可以觸發(fā)芯片的復(fù)位(reset)操作。這個按鈕提供了一種手動重置芯片的方式。

拉高:給引腳高電位,拉低:給引腳低電位

總體而言,EN引腳提供了對ESP32芯片的啟用和禁用控制,同時允許通過按鈕觸發(fā)復(fù)位。這是在開發(fā)和測試過程中非常有用的功能,因為它允許用戶手動重置芯片,或者在需要時禁用芯片以減小功耗。

錯誤更正說明

ESP32 WROOM-32上傳選擇

當使用Arduino IDE上傳程序到ESP32開發(fā)板時,對于常見的ESP32開發(fā)板,例如ESP32 WROOM-32,你可以在Arduino IDE中選擇"ESP32 Dev Module"進行上傳。這個開發(fā)板型通常是Arduino IDE默認支持的。

在先前的文章中使用的"ESP32 WROOM DA"選項是針對另一種ESP32模塊的開發(fā)板。

bf25300e-9584-11ee-8850-92fbcf53809c.jpg雖然使用"ESP32 WROOM-32"開發(fā)板也能成功選擇"ESP32 WROOM DA"上傳,這可能是因為在Arduino IDE的"esp32"支持包中,"ESP32 WROOM-32"也有相應(yīng)的支持。

因此,最終建議在使用ESP32 WROOM-32開發(fā)板時,選擇"ESP32 Dev Module",以確保在Arduino IDE中有更全面的支持和兼容性。這樣能夠更方便地進行開發(fā)和調(diào)試,確保代碼能夠正確地燒錄到ESP32開發(fā)板上。

bf309106-9584-11ee-8850-92fbcf53809c.png

后續(xù)我會繼續(xù)分享零基礎(chǔ)入門ESP32的教學文章,

也歡迎關(guān)注我的視頻號與B站:伊娃老師來了。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8611

    瀏覽量

    151251
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6470

    瀏覽量

    187180
  • ESP32
    +關(guān)注

    關(guān)注

    18

    文章

    971

    瀏覽量

    17302
收藏 人收藏

    評論

    相關(guān)推薦

    ESP32-S3-WROOM-1/ESP32-S3-WROOM-1U技術(shù)規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《ESP32-S3-WROOM-1/ESP32-S3-WROOM-1U技術(shù)規(guī)格書.pdf》資料免費下載
    發(fā)表于 12-07 15:30 ?1次下載

    esp32上使用chatGPT做一些有意思的事情

    將ChatGPT與ESP32進行結(jié)合,可以在物聯(lián)網(wǎng)應(yīng)用方面做出更有意思的事情,如聊天機器人、語音助手和自然語言界面。下面,我將在ESP32中使用ChatGPT API。為了讓ESP32
    的頭像 發(fā)表于 10-18 10:04 ?544次閱讀

    ESP32 微控制器系列指南

    。 對于工程師或制造商來說,熟悉各種 ESP32 硬件平臺和軟件包可能是一項艱巨的任務(wù)。本指南將提供與 ESP32 微控制器生態(tài)系統(tǒng)相關(guān)的技術(shù)規(guī)格、開
    的頭像 發(fā)表于 10-02 18:21 ?2820次閱讀
    <b class='flag-5'>ESP32</b> 微控制器系列<b class='flag-5'>指南</b>

    簡述三種esp32的開發(fā)方式是什么

    ESP32是一款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模無線通信芯片,廣泛應(yīng)用于物聯(lián)網(wǎng)、智能家居、智能硬件等領(lǐng)域。本文將詳細介紹三種ESP32的開發(fā)方式:Arduino
    的頭像 發(fā)表于 08-20 09:11 ?3199次閱讀

    esp32esp8266代碼共用嗎

    本文將介紹ESP32ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來越多的智能設(shè)備開始進入我們的生活。其中,ESP32ESP
    的頭像 發(fā)表于 08-19 18:23 ?1170次閱讀

    esp8266和esp32區(qū)別是什么

    以下是關(guān)于ESP8266和ESP32的主要區(qū)別: 處理器和架構(gòu) : ESP8266 :使用一個Tensilica L106 80MHz的處理器,屬于Xtensa架構(gòu)。 ESP32 :使
    的頭像 發(fā)表于 08-19 18:16 ?5452次閱讀

    esp32什么軟件編程

    。 概述 ESP32具有豐富的外設(shè)接口和靈活的編程方式,支持多種編程語言和開發(fā)環(huán)境。本文將詳細介紹ESP32的編程軟件,包括開發(fā)環(huán)境、編程語言、庫函數(shù)、開發(fā)工具等。 開發(fā)環(huán)境 2.1 Ardu
    的頭像 發(fā)表于 08-19 17:24 ?3579次閱讀

    ESP32-WROOM-32E、ESP32-WROOM-32D、ESP32-WROOM-32U 有什么區(qū)別?ESP32-WROOM-32 后綴字母代表的意思是?

    相信很多人心里都有這樣的疑問,今天就教大家怎么區(qū)分它們。 32D和32U是同一個芯片ESP32-D0WD的模組,主要區(qū)別的天線模式,分別是板載和IPEX外接天線。 32E是的升級版的芯片
    的頭像 發(fā)表于 07-17 10:09 ?1w次閱讀
    <b class='flag-5'>ESP32</b>-WROOM-32E、<b class='flag-5'>ESP32</b>-WROOM-32D、<b class='flag-5'>ESP32</b>-WROOM-32U  有什么區(qū)別?<b class='flag-5'>ESP32</b>-WROOM-32 后綴字母代表的意思是?

    ESP32能取代STM32嗎?哪個更好?

    不能!首先二者不存在哪個更好的問題,因為這兩個芯片使用場景各不相同,在嵌入式系統(tǒng)領(lǐng)域,ESP32和STM32都是常見的單片機系列,它們各自具有一定的優(yōu)勢和適用場景。本文主要探討ESP32是否能夠取代
    的頭像 發(fā)表于 07-06 08:04 ?1.2w次閱讀
    <b class='flag-5'>ESP32</b>能取代STM32嗎?哪個更好?

    ESP32系列ESP32-D0WD雙模 超低功耗集成BLE4.2+2.4G WIFI SoC芯片

    ESP32系列ESP32-D0WD雙模 超低功耗集成BLE4.2+2.4G WIFI SoC芯片
    的頭像 發(fā)表于 05-29 11:52 ?1480次閱讀
    <b class='flag-5'>ESP32</b>系列<b class='flag-5'>ESP32</b>-D0WD雙模 超低功耗集成BLE4.2+2.4G WIFI SoC芯片

    分享6個實用的ESP32-S3物聯(lián)網(wǎng)項目:智能設(shè)備到安全創(chuàng)新

    ESP32-S3是物聯(lián)網(wǎng)領(lǐng)域的創(chuàng)新之一,具備2.4GHz Wi-Fi和藍牙連接、先進的安全功能和各種接口協(xié)議的外設(shè)。該雙核微控制器基于TSMC超低功耗40nm技術(shù)構(gòu)建,適合輕量級AI應(yīng)用。兼具
    的頭像 發(fā)表于 05-17 10:15 ?794次閱讀

    使用Arduino IDE 2.0開發(fā)ESP32攝像頭模塊

    /nodematrix/ESP32CameraDemo)。 以上是如何使用Arduino IDE 2.0開發(fā)ESP32攝像頭模塊的快速指南
    發(fā)表于 02-07 17:06

    ESP32-C2在小魔方遙控器的應(yīng)用

    我們經(jīng)常提起的ESP32-C3和ESP32-S3,ESP32-C2感覺話題度沒有那么多,但其應(yīng)用上不可小覷。今天小啟就跟大家講講ESP32-C2在小魔方遙控器的應(yīng)用。1射頻性能拉滿,成
    的頭像 發(fā)表于 01-13 08:03 ?852次閱讀
    <b class='flag-5'>ESP32</b>-C2在小魔方遙控器的應(yīng)用

    esp32外置flash的大小

    的Flash存儲芯片,用于擴展ESP32的存儲容量。 ESP32外置Flash的大小是可以根據(jù)需求而定的。通常,外置Flash的大小可以幾兆字節(jié)到幾十兆字節(jié)不等,常見的大小有16MB、32MB、64MB等。 為什么需要外置Fl
    的頭像 發(fā)表于 01-09 11:24 ?4182次閱讀

    ESP32與SD NAND的協(xié)同應(yīng)用

    SDNAND在樂鑫ESP32上的作用SDNAND是貼片式TF卡,可以用于存儲數(shù)據(jù),比如視頻圖片或者代碼樂鑫ESP32一顆具有雙核處理器的嵌入式系統(tǒng)芯片,有豐富的外設(shè)接口,包括Wi-Fi、藍牙
    的頭像 發(fā)表于 01-08 13:56 ?612次閱讀
    <b class='flag-5'>ESP32</b>與SD NAND的協(xié)同應(yīng)用