STM32H743的SD卡讀寫測試(SDIO)

水平不行,光入坑了。每次爬出來都精疲力竭。

把野火的SD卡測試程序,移植到字節的xi項目中,說啥也不行,直接用野火的程序就OK,移植過來就不行。

除了移植程序相關的.h.c文件外,發現一個很坑的文件,就是那個hal_conf文件。這裏除了定義包含哪些庫文件,還有其他的一些定義,已經不止一次被這個文件坑死。

這次移植sd卡程序,我的項目程序的conf文件,多了一行定義

#define  USE_SD_TRANSCEIVER           1U               /*!< use uSD Transceiver */

野火的程序裏沒有。

然後我的程序要麼初始化失敗,要麼卡在Wait_SDCARD_Ready()這個函數裏出不來,後來把定義改成

#define  USE_SD_TRANSCEIVER           0U               /*!< use uSD Transceiver */

這樣就能初始化成功了,也不卡在上面那個函數裏了。但是讀寫還是不行

後來發現野火程序裏寫了一句:SDMMC只能訪問AXI_SRAM

然後我就把用於讀寫SD卡的數組定義到了AXI_SRAM,但是還是不行。簡直要崩潰

有病亂投醫,又改了3個地方

一個是SDMMC的分頻: uSdHandle.Init.ClockDiv            = 8;

原來是0.  改成了8

一個是systick的中斷優先級,在conf文件裏:#define  TICK_INT_PRIORITY            ((uint32_t)0x0E) /*!< tick interrupt priority */

另一個是SDMMC的中斷優先級:HAL_NVIC_SetPriority(SDMMC1_IRQn,3,0);  //配置SDMMC1中斷

然後。。。。。。。

奇蹟出現了!!!!

讀寫測試成功了!!!!

2020年1月1日,計劃是把fatfs調好,沒想到從早調到晚上,不帶fatfs的程序都一直沒整明白。還好苦心人天不負,得到點安慰!

水平不行,光入坑了,程序照抄都抄不明白。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章