STM32基於HAL庫通過DMA讀寫SDIO


  通過STM32CUBEMX生成DMA讀寫sdio的工程,再讀寫過程中總會卡死在DMA中斷等待讀寫完成的while中,最終發現while等待的標志在SDIO的中斷里置位的,而SDIO中斷優先級如果小於或等於DMA中斷優先級,則SDIO中斷永遠不能搶占DMA中斷,DMA處於持續等待中,解決辦法由兩種,一種是直接提高SDIO中斷優先級到比DMA中斷優先級高,第二種是直接在HAL庫中卡住的中斷等待函數中注釋掉while等待。

  另外還有一點就是在SDIO數據讀寫的時候需要注意的兩點,一個是讀寫數據最好四字節對其,否則可能出BUG,二是讀寫BUFF的大小必須大於等於讀寫函數的SIZE參數,否則會出現內存莫名錯誤導致指針出亂,程序出亂。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM