2017-02-19 127 views
3

我開始用stm32l0板的工作,這是罰款,直到我遇到了一些更有趣的功能使用。我從來沒有從Windows中讀取SD卡,我找到了Pins鏈接,並開始閱讀關於SPI的內容,這可能是我們項目的合適解決方案(我認爲)。STM32和SD卡(FATFS和SPI)

但問題是在編程部分,每個教程中,我發現跳過基礎知識。我使用STM32CubeMX生成代碼與HAL和FATFS,但我不知道如何初始化,然後使用我的SD卡。我嘗試粘貼我找到的代碼,但是我無法調試它,因此粘貼某人的代碼沒有意義。

感謝和我的語法對不起,

編輯: 我來到這裏,這個帖子後:link 我現在嘗試訪問SD卡與stm32l0控制器。我被建議使用FATFS來讀取設備,但我所瞭解的是該庫需要一種訪問數據的方式:SPI。我在STM32CubeMX中選擇了FATFS和SPI2,並在Eclipse中導入了項目(我使用HAL和SW4STM32)。在引腳說明中,我看到了CubeMX中的引腳PB12,PB13,PB14上的MISO,CK和MOSI。 但在主文件中,這些引腳從不使用。
另一件令我擔心的事情,我提到:SD卡需要以一種從未聽說過的方式進行初始化。
我不知道你是否需要SPI_Init和GPIO_Init函數,如果你需要的話,我會編輯這個消息。
無論如何,我會在早上編輯,因爲這個帖子必須如此混亂,我的大腦正在燃燒,我很抱歉。詢問你是否需要精確的。 謝謝!

+0

歡迎來到Stack Overflow!要求我們推薦或查找書籍,工具,軟件庫,教程或其他非現場資源的問題與Stack Overflow無關,因爲它們傾向於吸引自以爲是的答案和垃圾郵件。相反,[描述問題](http://meta.stackoverflow.com/questions/254393)以及迄今爲止已經做了什麼來解決它。 –

+0

對不起,我不知道。 我在這裏發佈,因爲我在這裏發現了類似的問題,但作者看起來像他設法做很多事情,可能會幫助我之前被卡住。我會找到這個主題,然後發佈! – Blaitox

回答

2

如果使用CubeMx和配置SPI訪問SD卡,該引腳自動在你的代碼配置。查看生成的main.c中前幾個函數的定義/實現。

如果你沒有在STM32和HAL驅動程序的任何經驗,先了解事情如何堆疊。

最快的方法是嘗試一個例子。

您的所有CubeMx固件庫位於

C:/用戶/用戶名/ STM32Cube /存儲庫/ STM32Cube_FW_XX

轉到項目>實施例的文件夾(可能不準確 - 但路徑是相似的)和你會找到這些例子。

+0

你的意思是說「hspi.Instance = SPI2;」自動爲總線設置正確的引腳? – Blaitox

+0

如果轉到Cube,在引腳分配選項卡中,啓用SPI外設以查看在軟件包視圖中自動分配的GPIO。當你生成代碼時,MX_XXXX方法配置引腳和外設 – SamR

+0

好的,謝謝! 我在您給我的文件夾中讀取SPI示例,並理解如何發送字節。但是,你知道我是否必須自己初始化整個過程,還是使用FatFs f_mount函數完成?我不熟悉「掛載」這個詞,所以我不知道它有多遠。在這種情況下,我的名片有什麼名字?我有時閱讀「0」或有時「SD:」 或者我必須發送74個時鐘週期,然後是字節,然後使用f_mount嗎? – Blaitox