web-dev-qa-db-fra.com

STM32 et carte SD (FATFS et SPI)

Je commence à travailler avec un tableau stm32l0 et tout se passait bien jusqu'à ce que je dispose de fonctions plus intéressantes. Je ne lisais jamais la carte SD à l’extérieur de Windows, j’ai trouvé des liens Pins et commencé à lire à propos de SPI qui pourrait constituer une solution appropriée pour notre projet (je pense).

Mais le problème se situe dans la partie programmation, chaque tutoriel que je trouve saute aux bases. J'utilise STM32CubeMX pour générer du code avec HAL et FATFS mais je ne sais pas comment initialiser puis utiliser ma carte SD. J'essaie de coller le code que je trouve mais je ne peux pas le déboguer à ce moment-là et il ne sert à rien de coller le code de quelqu'un.

Merci et désolé pour ma grammaire,

EDIT: Je suis venu ici après ce post: link J'essaie maintenant d’accéder à une carte SD avec un contrôleur stm32l0. On m'a conseillé d'utiliser FATFS pour lire le périphérique, mais ce que j'ai compris, c'est que la bibliothèque a besoin d'un moyen d'accéder aux données: SPI. J'ai sélectionné FATFS et SPI2 dans STM32CubeMX et importé le projet dans Eclipse (j'utilise HAL et SW4STM32). Sur la description de la broche, j'ai vu MISO, CK, MOSI dans CubeMX qui se trouvaient sur les broches PB12, PB13, PB14. Mais dans le fichier principal, ces pins ne sont jamais utilisés.
Une autre chose me fait peur dans le post que j'ai mentionné: la carte SD doit être initialisée de manière inconnue.
Je ne sais pas si vous avez besoin des fonctions SPI_Init et GPIO_Init, je modifierai ce message si vous en avez besoin.
Je vais quand même éditer dans la matinée car le message doit être si confus, mon cerveau est en train de brûler. Je suis désolé. Demandez si vous avez besoin de précision sur quoi que ce soit. Merci !

3
Blaitox

Si vous utilisez CubeMx et configurez SPI pour accéder à la carte SD, les broches sont automatiquement configurées dans votre code. Regardez les définitions/implémentations des premières fonctions dans votre main.c généré.

Si vous n’avez aucune expérience de STM32 et de ses pilotes HAL, essayez d’abord de comprendre comment les choses se gâtent.

Le moyen le plus rapide de le faire est d'essayer un exemple.

Toutes vos bibliothèques de micrologiciels CubeMx sont situées à

C:/Utilisateurs/Nom d'utilisateur/STM32Cube/Référentiel/STM32Cube_FW_XX

Allez dans le dossier Projets> Exemples (il se peut que ce ne soit pas exact - mais les chemins sont similaires) et vous trouverez les exemples.

2
SamR

Pour les autres personnes confrontées à ce problème, il suffit de sélectionner l'utilisateur défini dans CubeMX et d'utiliser les pilotes de kiwih. Ils sont très bons et bien documentés!

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

0
Bbbbbbbbbb