1.問題描述:使用STM32CubeMX,配置SDIO的4bit模式,對SD卡進行讀寫測試。
2.準備工作:
軟件版本:STM32CubeMX–4.22.0 ;KEIL5 硬件平臺:原子戰(zhàn)艦V3
(1)軟件設(shè)置:
I. SDIO選擇,這里選擇4bits模式,實際選1bits也可以。
II. 時鐘樹配置
III. SDIO模式時鐘分頻設(shè)置,其他默認。
其他詳細配置請自行打開源碼壓縮包里的MP3_Test.ioc查看。
(2)Keil工程測試代碼:
測試代碼參考硬石的HAL庫例程,其資料下載地址在最下方。
I.首先是測試要用到的宏定義及變量的聲明。
II.接下來是對主函數(shù)代碼的添加與修改。
III.主要代碼段修改與添加。
擦除函數(shù)部分:
擦除函數(shù)部分主要是對硬石的讀塊函數(shù)參數(shù)進行修改,另外在增添了一句10ms的延時。如果沒有這句,擦除操作可以成功,但是讀塊函數(shù)會錯誤,最后顯示擦除測試不成功。
讀寫函數(shù)部分:
讀寫函數(shù)部分除了對HAL讀寫函數(shù)參數(shù)進行更改,也屏蔽了HAL_Delay()函數(shù),使用自身的延時函數(shù)。且實際測試時,這里的延時在480us,能夠保證讀寫操作的正常進行。如果延時時間往下再降低,則讀寫測試報錯。
3.實際測試:
首先是2G卡的測試。
8G卡的測試。
實際測試時,如果更換SD卡且重新開機后,有可能會測試失敗,此時重新復位幾次單片機即可。
上一篇:STM32CubeMX配置SDIO模式(非DMA方式)
下一篇:基于STM32的SDIO用4位總線24MHZDMA模式操作SHDC卡
推薦閱讀
史海拾趣