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

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

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

ESP32的接口不能隨便用,如何快速?gòu)腁rduino過(guò)渡到ESP32的新手指南-進(jìn)階篇

伊娃老師來(lái)了 ? 來(lái)源:伊娃來(lái)了 ? 作者:伊娃來(lái)了 ? 2023-12-12 15:54 ? 次閱讀

進(jìn)階篇

接續(xù)如何快速?gòu)?a target="_blank">Arduino過(guò)渡到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引腳

引腳名稱 對(duì)應(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ù)。通過(guò)SPI,ESP32可以與其他同樣使用SPI連接的傳感器相互傳輸數(shù)據(jù)。

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

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

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

在SPI通信中,通常有四個(gè)信號(hào)線:

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í)鐘信號(hào),用于同步主設(shè)備和從設(shè)備之間的數(shù)據(jù)傳輸。

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

SPI使用注意

避免沖突

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

可自定義SPI引腳

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

可共用引腳

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

VSPI和HSPI的選擇

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

I2C引腳

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

I2C是什么

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

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

I2C使用注意

I2C引腳

I2C只需要兩個(gè)引腳,不管連接幾個(gè)I2C設(shè)備都是使用SDASCL。這使得它在連接多個(gè)設(shè)備時(shí)非常方便,因?yàn)樗加玫囊_相對(duì)較少。

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通信中,時(shí)鐘線通常稱為SCLK(Serial Clock),全稱是"Serial Clock"。SCLK用于同步數(shù)據(jù)的傳輸,主設(shè)備通過(guò)SCLK向從設(shè)備發(fā)送時(shí)鐘脈沖,以確保數(shù)據(jù)的有效傳輸。

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

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

UART引腳

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

UART是什么

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

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

可以理解為,

? UART:通過(guò)相對(duì)的時(shí)間來(lái)同步信息

? SPI、I2C:通過(guò)絕對(duì)的時(shí)鐘信號(hào)來(lái)確保通信的同步。

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

UART使用注意

簡(jiǎn)單來(lái)說(shuō),只用UART2,UART0不能用

UART0

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

UART2

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

RTC引腳

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

RTC是什么

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

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

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

一些常見(jiàn)的應(yīng)用場(chǎng)景包括:

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

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

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

Strapping 引腳

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

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

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

EN引腳

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

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

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

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

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

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

總體而言,EN引腳提供了對(duì)ESP32芯片的啟用和禁用控制,同時(shí)允許通過(guò)按鈕觸發(fā)復(fù)位。這是在開發(fā)和測(cè)試過(guò)程中非常有用的功能,因?yàn)樗试S用戶手動(dòng)重置芯片,或者在需要時(shí)禁用芯片以減小功耗。

錯(cuò)誤更正說(shuō)明

ESP32 WROOM-32上傳選擇

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

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

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

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

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

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

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

審核編輯 黃宇

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

    關(guān)注

    33

    文章

    8254

    瀏覽量

    149948
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6453

    瀏覽量

    185918
  • ESP32
    +關(guān)注

    關(guān)注

    17

    文章

    936

    瀏覽量

    16660
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    esp32esp8266代碼共用嗎

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

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

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

    esp32什么軟件編程

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

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

    相信很多人心里都有這樣的疑問(wèn),今天就教大家怎么區(qū)分它們。 32D和32U是同一個(gè)芯片ESP32-D0WD的模組,主要區(qū)別的天線模式,分別是板載和IPEX外接天線。 32E是的升級(jí)版的芯片
    的頭像 發(fā)表于 07-17 10:09 ?3668次閱讀
    <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嗎?哪個(gè)更好?

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

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

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

    esp32外置flash的大小

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

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

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

    esp32外接多個(gè)傳感器 如何供電

    在將多個(gè)傳感器外接到ESP32上時(shí),供電是至關(guān)重要的考慮因素。這篇文章將為您詳細(xì)介紹如何供電ESP32和外接多個(gè)傳感器。 供電ESP32ESP32可以通過(guò)多種方式進(jìn)行供電,包括直接
    的頭像 發(fā)表于 01-02 16:13 ?4865次閱讀

    ESP32-PICO系列技術(shù)規(guī)格書

    ESP32-PICO 系列是基于 ESP32 芯片 的系統(tǒng)級(jí)封裝 (SiP) 產(chǎn)品。ESP32-PICO 系列產(chǎn)品包括 ESP32-PICO-D4、
    發(fā)表于 12-12 16:56 ?0次下載
    <b class='flag-5'>ESP32</b>-PICO系列技術(shù)規(guī)格書

    用了ESP32后,我的Arduino都積灰了,專為零基礎(chǔ)新手準(zhǔn)備的ESP32入門指南,為什么我不再使用Arduino

    Arduino 或許你已經(jīng)熟悉Arduino,這是許多零基礎(chǔ)者接觸的首個(gè)開發(fā)板。然而,隨著ESP32的嶄露頭角,它
    的頭像 發(fā)表于 12-12 15:48 ?5299次閱讀
    用了<b class='flag-5'>ESP32</b>后,我的<b class='flag-5'>Arduino</b>都積灰了,專為零基礎(chǔ)<b class='flag-5'>新手</b>準(zhǔn)備的<b class='flag-5'>ESP32</b>入門<b class='flag-5'>指南</b>,為什么我不再使用<b class='flag-5'>Arduino</b>

    ESP32-WROOM-32開發(fā)板教程

    ESP32-WROOM-32是一款功能強(qiáng)大的物聯(lián)網(wǎng)開發(fā)板,它基于Espressif的ESP32芯片,擁有更多的性能和功能。在本篇文章中,我將為您提供一份詳盡、詳實(shí)、細(xì)致的教程,以幫助您快速上手
    的頭像 發(fā)表于 12-08 13:55 ?7706次閱讀

    如何快速Arduino過(guò)渡到ESP32新手指南-基礎(chǔ)

    。 本文將為你提供 ArduinoESP32 GPIO引腳平穩(wěn)過(guò)渡指南 ,讓你輕松解決各種問(wèn)題。 基礎(chǔ)
    的頭像 發(fā)表于 11-21 08:36 ?1976次閱讀
    如何<b class='flag-5'>快速</b><b class='flag-5'>從</b><b class='flag-5'>Arduino</b><b class='flag-5'>過(guò)渡到</b><b class='flag-5'>ESP32</b>的<b class='flag-5'>新手指南</b>-基礎(chǔ)<b class='flag-5'>篇</b>

    用了ESP32后,我的Arduino都積灰了,專為零基礎(chǔ)新手準(zhǔn)備的ESP32入門指南,為什么我不再使用Arduino

    Arduino 或許你已經(jīng)熟悉Arduino,這是許多零基礎(chǔ)者接觸的首個(gè)開發(fā)板。然而,隨著ESP32的嶄露頭角,它
    的頭像 發(fā)表于 11-20 11:20 ?1.5w次閱讀
    用了<b class='flag-5'>ESP32</b>后,我的<b class='flag-5'>Arduino</b>都積灰了,專為零基礎(chǔ)<b class='flag-5'>新手</b>準(zhǔn)備的<b class='flag-5'>ESP32</b>入門<b class='flag-5'>指南</b>,為什么我不再使用<b class='flag-5'>Arduino</b>