這個問題一不留心就出錯,排查了好多天,
網上方法試了都不行,甚至無奈去看底層函式,都發現沒有用,后來想到可能優先級問題,
緊急避坑!!!如果沒有用freertos,那中斷優先級設定沒啥關系,但如果用了freertos,那SDIO的優先級必須要注意跟freertos區分開來,不能高過他!不然就是mout正常,read等其他操作都回傳錯誤3 not ready,

其實當你開啟freertos,然后點擊NVIC時候,cube會提醒你,要注意函式的中斷優先級和freertos優先級的關系,
(如果中斷處理程式呼叫RTOS函式,請確保其搶占優先級低于最高的SysCall中斷優先級,如FreeRTOS中的“LIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY”)

當初沒怎么注意,現在才發現這是多么重要!!
還有一個要注意的小地方
cube需要設定sd卡檢測引腳

更多stm32cube使用教程,歡迎閱讀:
STM32CubeMX6.0 + HAL + LittleVGL7.6 等學習[最全附工程原始碼]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/194353.html
標籤:其他
上一篇:海關179號
