国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——63 SD和TF卡模塊的使用

這篇具有很好參考價值的文章主要介紹了一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——63 SD和TF卡模塊的使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

摘要:本文介紹SD和TF卡模塊的使用方法

前面介紹了非易失性存儲的使用方法,由于空間和本身只支持鍵值對的限制,非易失性存儲只適用于少量數(shù)據(jù)的記錄。而不適用于各種聲音、圖片、大量數(shù)據(jù)等情況的使用。這時候就需要有文件系統(tǒng)或者更大容量存儲空間的支持。SD卡(Secure Digital Memory Card)和TF卡(Trans-flash Card,也叫Micro SD卡)就是擴展存儲空間的不錯的選擇,因為這兩種卡都支持SPI模式,也就是可以通過SPI通信協(xié)議直接訪問,因此這兩種卡成了很多移動設(shè)備擴展存儲空間的不二選擇。

SD卡通常有兩種工作模式:SDIO模式和SPI模式。其實這也是兩種通信協(xié)議,也就是說SD卡支持SDIO和SPI兩種通信方式。SPI通信協(xié)議在前面已經(jīng)介紹過了。SDIO是安全數(shù)字輸入輸出接口(Secure Digital Input and Output)的縮寫,是從SD內(nèi)存卡接口的基礎(chǔ)上演化出來的一種外設(shè)接口。SDIO接口兼容以前的SD內(nèi)存卡,并且可以連接支持SDIO接口的設(shè)備。SDIO接口有4根數(shù)據(jù)線,數(shù)據(jù)傳輸速度非??臁S信d趣的可以進一步的了解SDIO的詳細信息。

下面來看一下SD卡和TF卡的接口定義:

esp32 tf卡,基于ESP32的物聯(lián)網(wǎng)人工智能小車,硬件功能模塊,物聯(lián)網(wǎng),人工智能,ESP32,單片機

通過上面的接口可知,應(yīng)該有兩種方法用來讀取SD卡上的數(shù)據(jù),一種是通過SDIO接口,一種是SPI接口,為了簡單方便,現(xiàn)在大部分訪問SD卡都使用SPI的方式,市面上能買到的SD開模塊,也都是SPI接口的。

雖然可以直接把SD卡與ESP32單片機相連接來進行數(shù)據(jù)的讀寫操作,但接線不是那么方便,因此還是使用的功能模塊來進行實驗,通常的功能模塊都是只支持SPI模式的,將SD卡的SPI數(shù)據(jù)線引出到了接線排針上。因為現(xiàn)在TF卡更普遍一些,因此這次使用的是TF卡模塊,其使用方法與SD卡功能模塊沒有任何區(qū)別。模塊的樣子如下圖所示:

esp32 tf卡,基于ESP32的物聯(lián)網(wǎng)人工智能小車,硬件功能模塊,物聯(lián)網(wǎng),人工智能,ESP32,單片機

熟悉SPI協(xié)議的應(yīng)該對上圖中的引腳非常的屬性了,應(yīng)該不需要再進一步的解釋了,不了解的可以看之前關(guān)于SPI通信協(xié)議的文章。下面就把TF卡模塊連接到我們的ESP32單片機引腳上。

ESP32芯片共有3個SPI接口,其中一個被用作片上SPI Flash使用,另外兩個可以給開發(fā)人員使用,其引腳定義如下:

Pin Name

HSPI(GPIO Number)

VSPI(GPIO Number)

CSO*

15

5

SCLK

14

18

MISO

12

19

MOSI

13

23

QUADWP

2

22

QUADHD

4

21

其中的QUADWP為寫保護信號,QUADHD為保持信號。這兩個引腳只用于4位傳輸。

在設(shè)計電路的時候,可以盡量使用默認的引腳,這樣在開發(fā)中就不需要再進行額外的配置了。當然,ESP32在強大的GPIO交換矩陣的支持下,基本上可以用任意的引腳來連接到SPI控制器,實現(xiàn)使用任意引腳與外部SPI設(shè)備的連接。我所使用的連接方法如下表所示:

TF卡模塊

ESP32擴展板

GND

GND

VCC

+5V

MISO

P19

MOSI

P23

SCK

P18

CS

P5

這是使用VSPI默認引腳的連接方法。SPI通信協(xié)議中有明顯的主從設(shè)備定義,因此收發(fā)引腳也明確了主從,這樣連接起來就非常的方便,不容易接錯。回想前面UART通信協(xié)議中,收發(fā)引腳都是站在自身的角度來說的,因此在與其他設(shè)備通信的時候,就應(yīng)該自己的接收與對方的發(fā)送相連接,對方的接收與自己的發(fā)送相連接。這點不同之處要關(guān)注一下,很容易搞錯了。

接下來就來看一下在Arduino IDE中,如何讀寫SD卡中的內(nèi)容,這其中會包含非默認引腳的處理方法。下面來看一下主要的操作過程。

1. 引入頭文件

#include?"SD.h"

#include?"SPI.h"

2. 配置SPI通信引腳

如果使用HSPI的默認引腳,那么可以忽略本步驟,直接進入到下一步。否則,就需要使用這里列舉的幾種方法來配置SPI的通信引腳。通常有下面兩種方法:

(1)調(diào)用SPI實例的begin()方法來指定SPI通信的引腳,該方法的定義如下:

void?begin(int8_t?sck = -1, int8_t?miso = -1, int8_t?mosi = -1, int8_t?ss = -1)

這個方法有4個參數(shù),依次是:sck、miso、mosi和ss。

(2)創(chuàng)建一個新的SPIClass的實例

SPIClass spi = SPIClass(VSPI);

創(chuàng)建的時候可以指定使用VSPI控制器,也可以使用默認的HSPI控制器。如果這個時候恰好使用的就是VSPI的默認引腳,那么就不用再進行任何操作了,如果是自己隨意選擇的幾個引腳,那么同樣可以調(diào)用begin()方法來指定每一個引腳。具體方法同前一種一樣,默認的SPI實例就是SPIClass類型的。

3. 初始化SD實例

SD是SDFS類的實例。其初始化方法begin()的定義如下:

bool?begin(uint8_t?ssPin = SS, SPIClass &spi = SPI,
uint32_t?frequency = 4000000, const?char?*mountpoint = "/sd",
uint8_t?max_files = 5, bool?format_if_empty = false)

這個begin()方法的參數(shù)比較多,重點關(guān)注前兩個,第一個是片選引腳。第二個就是前面創(chuàng)建的SPIClass類的配置信息。默認值是SPI,如果自己生成了新的SPIClass對象的實例,那么把它作為第二個參數(shù)傳遞給begin()方法。

這個begin()方法返回值位布爾類型的,true表示成功,false表示初始化失敗。這時,應(yīng)檢查接線是否牢固、正確。前邊的初始化配置與接線是否相符合。

4. 得到卡的類型

調(diào)用SD.cardType()方法可以得到卡的類型。該方法返回一個枚舉類型的變量,該枚舉類型可以有以下幾個數(shù)值:

? ? CARD_NONE 無卡

? ? CARD_MMC MMC卡

? ? CARD_SD SD卡

? ? CARD_SDHC SDHC卡

? ? CARD_UNKNOWN 未知

下面再說一下SD卡類型的小知識。目前SD卡分為三種,分別是SD、SDHC和SDXC卡。這三者的區(qū)別是容量上限的不同,其次在傳輸速度上有的有些差別,但傳輸速度不是劃分的標準。SD卡是由MMC卡發(fā)展而來的,最早的SD卡由于FAT16文件系統(tǒng)的限制,其最大容量只有2GB,所以在開發(fā)中,小于2GB容量的SD卡,就叫SD卡。容量在2GB至32GB之間的稱為SDHC(Secure Digital High Capacity),也就是高容量的SD卡。它使用了FAT32文件系統(tǒng),能夠支持大于2G的文件。相比之下,SDXC(Secure Digital eXtended Capacity)卡的容量更大,可以達到2TB(2048GB)。它是為需要更高容量的設(shè)備設(shè)計的,并且支持更快的讀寫速度。SDXC使用了FAT32或者EXFAT文件系統(tǒng)。

設(shè)備讀取SD卡是向下兼容的,支持高容量的設(shè)備是可以讀取低容量SD卡的,只支持低容量SD卡的設(shè)備,則無法讀寫高容量SD卡中的內(nèi)容。這里所說的容量的高低是以2GB和32GB為分界線的。

之后,利用SD實例就可以對SD卡中的目錄和文件進行各種操作了。這將在下一篇中進行介紹。文章來源地址http://www.zghlxwxcb.cn/news/detail-834581.html

到了這里,關(guān)于一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——63 SD和TF卡模塊的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包