web-dev-qa-db-ja.com

STM32およびSDカード(FATFSおよびSPI)

Stm32l0ボードを使い始めましたが、もっと面白い関数を使用できるようになるまでは問題ありませんでした。私はウィンドウからSDカードを読み取ったことがなく、ピンのリンクを見つけてSPIについて読み始めました。これは、私たちのプロジェクトに適した解決策になる可能性があります(私は思います)。

しかし、問題はプログラミングの部分にあり、私が見つけたすべてのチュートリアルは基本をスキップします。 STM32CubeMXを使用してHALとFATFSでコードを生成していますが、SDカードを初期化して使用する方法がわかりません。見つけたコードを貼り付けようとしましたが、デバッグできず、誰かのコードを貼り付けるだけでは意味がありません。

文法をありがとう、ごめんなさい、

編集:私はこの投稿の後にここに来ました: リンク 私は今stm32l0コントローラーでSDカードにアクセスしようとしています。 FATFSを使用してデバイスを読み取るようにアドバイスされましたが、ライブラリにはデータにアクセスする方法が必要であることがわかりました:SPI。 STM32CubeMXでFATFSとSPI2を選択し、プロジェクトをEclipseにインポートしました(HALとSW4STM32を使用しています)。ピンの説明で、ピンPB12、PB13、PB14にあるCubeMXのMISO、CK、MOSIを見ました。ただし、メインファイルでは、これらのピンは使用されません。
私が言及した投稿で私を悩ませたもう1つのことは、SDカードを聞いたことのない方法で初期化する必要があるということです。
SPI_Init関数とGPIO_Init関数が必要かどうかわかりません。必要に応じて、このメッセージを編集します。
[。何にでも精度が必要かどうか尋ねてください。ありがとう!

3
Blaitox

CubeMxを使用してSDカードにアクセスするためにSPIを構成する場合、ピンはコードで自動的に構成されます。生成されたmain.cの最初のいくつかの関数の定義/実装を確認してください。

STM32とそのHALドライバーの経験がない場合は、最初に物事がどのように積み重なるかを理解してみてください。

そのための最も簡単な方法は、例を試すことです。

すべてのCubeMxファームウェアライブラリは次の場所にあります。

C:/ Users/UserName/STM32Cube/Repository/STM32Cube_FW_XX

Projects> Examplesフォルダー(正確ではないかもしれませんが、パスは似ています)に移動すると、例が見つかります。

2
SamR

この問題に直面している他の人は、CubeMXで定義されたユーザーを選択し、kiwihのドライバーを使用するだけです。それらは非常に優れており、十分に文書化されています!

https://github.com/kiwih/cubemx-mmc-sd-card

0
Bbbbbbbbbb