1. 程式人生 > >STM32CubeMX的SDIO模式下對SD卡讀寫測試(附原始碼)

STM32CubeMX的SDIO模式下對SD卡讀寫測試(附原始碼)

1.問題描述:使用STM32CubeMX,配置SDIO的4bit模式,對SD卡進行讀寫測試。

2.準備工作

軟體版本:STM32CubeMX–4.22.0 ;KEIL5 硬體平臺:原子戰艦V3

(1)軟體設定:

I. SDIO選擇,這裡選擇4bits模式,實際選1bits也可以。

這裡寫圖片描述

II. 時鐘樹配置

這裡寫圖片描述

III. SDIO模式時鐘分頻設定,其他預設。

這裡寫圖片描述
其他詳細配置請自行開啟原始碼壓縮包裡的MP3_Test.ioc檢視。

(2)Keil工程測試程式碼:
測試程式碼參考硬石的HAL庫例程,其資料下載地址在最下方。

I.首先是測試要用到的巨集定義及變數的宣告。
這裡寫圖片描述

II.接下來是對主函式程式碼的新增與修改。
這裡寫圖片描述
III.主要程式碼段修改與新增。
擦除函式部分:
這裡寫圖片描述
擦除函式部分主要是對硬石的讀塊函式引數進行修改,另外在增添了一句10ms的延時。如果沒有這句,擦除操作可以成功,但是讀塊函式會錯誤,最後顯示擦除測試不成功。

讀寫函式部分:
這裡寫圖片描述
讀寫函式部分除了對HAL讀寫函式引數進行更改,也遮蔽了HAL_Delay()函式,使用自身的延時函式。且實際測試時,這裡的延時在480us,能夠保證讀寫操作的正常進行。如果延時時間往下再降低,則讀寫測試報錯。

3.實際測試

首先是2G卡的測試。

這裡寫圖片描述

8G卡的測試。

這裡寫圖片描述

實際測試時,如果更換SD卡且重新開機後,有可能會測試失敗,此時重新復位幾次微控制器即可。

4.參考資料及測試原始碼:

相關推薦

STM32CubeMX的SDIO模式SD測試原始碼

1.問題描述:使用STM32CubeMX,配置SDIO的4bit模式,對SD卡進行讀寫測試。 2.準備工作: 軟體版本:STM32CubeMX–4.22.0 ;KEIL5 硬體平臺:原子戰艦V3 (1)軟體設定: I. SDIO選擇,這裡選擇4

用Python打造一個AI作家為你原始碼

從短篇故事到長達5萬詞的小說,機器正以不可思議的方式“把玩”文字。網上已經湧現很多例子,越來越多

Linux目錄的操作代表著什麼意思?

結論: a目錄有執行許可權表示可以cd 到這個目錄裡面 a目錄有讀許可權表示可以 ls a 這個目錄 a目錄有寫許可權表示可以在進入cd之後,能夠進行建立刪除檔案和目錄 實驗: [[email protected] ~]$ pwd /ho

sd——sd example閱讀

constant aligned sta beginning pri format lba () sdn 改mss後import example 主要是用fat的函數讀寫sd 1 /*******************************************

Android獲取外接SD路徑

1. 外接SD卡的一些問題 1.1 關於外接SD卡上的讀寫路徑 Android 4.4及以上版本,應用的外接SD卡讀寫路徑被限定在固定路徑上(外接SD卡根路徑/Android/data/包名/files)。 Android4.4以下版本,申請了外接SD卡讀寫許可權的應用在整個

Linux檔案的操作代表著什麼意思?

結論: a目錄有執行許可權表示可以cd 到這個目錄裡面 a目錄有讀許可權表示可以 ls a 這個目錄 a目錄有寫許可權表示可以在進入cd之後,能夠進行建立刪除檔案和目錄 實驗: [[ema

java多執行緒環境變數的操作的原子性問題

本文轉載自:http://www.cnblogs.com/qlee/archive/2011/09/13/2174434.html 以下多執行緒對int型變數x的操作,哪幾個需要進行同步:( )A. x=y; B. x++; C. ++x; D. x=1;從表面看上去實在

android5及以前的版本user和userdebug模式remount修改/system許可權

user和userdebug模式下/system預設是隻讀的,即RO。但是很多時候都需要拷貝一些檔案到system/bin、system/etc、system/lib,結果嘛,很明顯就是提示。。。read only!!! 如果只是簡單的電腦連線裝置,然後使用adb push

ZYNQ系統中實現FAT32檔案系統的SD之三 SDK程式設計除錯

匯入到SDK後直接模板生成一個HELLO WORLD專案,之後在XILINX TOOLS-》BOARD SUPPORT PACKAGE SETTING裡面設定選擇XILFFS。 XILFFS各項可以設定引數按照預設,如下圖: 之後修改main函式所在檔案

ZYNQ系統中實現FAT32檔案系統的SD之四 經驗總結

在上述的三篇BLOG裡面主要介紹了步驟和設定,這裡簡答羅列一下此軟體硬體環境中進行FAT32讀寫的經驗總結。 1,SD卡要格式成FAT32格式。否則寫大檔案失敗,上幾M的就寫不了了。 2,每次建議寫256的整數倍位元組,否則餘數部分就會不能寫入,比如f_write函式

測試sd速度與判斷是否是擴容的假貨

買了個32G micro sd卡,官方標稱class10,就是說寫能達到10M/S,於是檢測是否真實 速度檢測 ATTO Disk Benchmarks 如圖 當資料達到256KB以上時,讀寫速度都達標了 有些sd卡是擴容的,就是看起來很大,但是資料寫入再讀出是不對的 這

使用C#Excel進行操作NPOI以及使用EFMysql進行CURD

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq;

linux程式設計——FIFO進行操作第十三章

4.對FIFO進行讀寫操作 使用O_NONBLOCK模式會影響的對FIFO的read和write呼叫. 對一個空的,阻塞的FIFO(即沒有用O_NONBLOCK標誌開啟)的read呼叫將等待,直到有資料可以讀時才繼續執行.與此相反,對一個空的,非阻塞的FIFO的read呼叫

MySQL Proxy 分離實戰總結

mysql proxy;讀寫分離 規劃: 主mysql服務器:192.168.1.21 從mysql服務器: 192.168.1.22 mysql讀寫分離器:192.168.1.23 1、讀寫分離服務器上解壓安裝包,並添加對應用戶,並編輯啟動腳本; # tar xf mysql-proxy-

mycat學習02--摸打滾爬之mycat主從復制於分離線上經驗

方案 nac url 特殊 break user 啟動 通過 doc 上一篇文章講到了mycat的安裝和配置,相信驗證過的朋友已經知道了,上一篇的做法已經實現了主從復制與讀寫分離的效果,這裏給大家詳細說以下讀寫分離部分:我的架構還是雙主雙從架構:(試驗環境1主一從)效果一樣

mysql主從復制及分離安裝包

download inux libaio script 關閉防火墻 安裝包 useradd tor 數據 實驗目的:在實際生產環境中,如果對數據庫的讀和寫都在同一個數據庫服務器中操作,無論在安全性、高可用性,還是高並發等各個方面都是完全不能滿足實際需求的,因此,一般需要通過

HDFS檔案操作 通俗易懂

首先來介紹兩個概念 ▪NameNode:領導級別。管 NameNode:領導級別。管理資料塊對映;處理客戶端的讀寫請求;配置副本策略;管理HDFS的名稱空間; DataNode:員工級別。負責儲存客戶端發來的資料塊block;執行資料塊的讀寫操作。 理資料 寫詳細步驟: 1、首先

spark通過phoenixhbaseJava版-轉:https://blog.csdn.net/xiongbingcool/article/details/81458602

pom.xml <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql --> <dependency> <groupId

C#EXCELOLEDB方式

  用OLEDB方式讀取EXCEL的速度是非常快的。但是當Excel資料量很大時。會非常佔用記憶體,當記憶體不夠時會丟擲記憶體溢位的異常。      OLEDB方式將Excel作為一個數據源,直接用Sql語句操作資料,並且不需要安裝Office Excel就可以使用。但缺點

Qt檔案操作 文章收錄

操作檔案是各種語言和類庫的基本功能. Qt是如何讀寫檔案的呢? 在Qt的文件有就有答案. 在QFile的文件中指出了幾種操作檔案的方法, 其中QTextStream是比較好理解和使用的: 讀取操作: The next example uses QTextStream to read a text f