STM32 和 SD 卡(FATFS 和 SPI)

STM32 and SD card (FATFS and SPI)

我开始使用 stm32l0 开发板,在我可以使用一些更有趣的功能之前一切都很好。我从来没有从 windows 读取 SD 卡,我找到了 Pins 链接并开始阅读有关 SPI 的信息,这可能是我们项目的合适解决方案(我认为)。

但问题出在编程部分,我找到的每个教程都跳过了基础知识。我使用 STM32CubeMX 通过 HAL 和 FATFS 生成代码,但我不知道如何初始化然后使用我的 SD 卡。我尝试粘贴我找到的代码,但我无法对其进行调试,而且粘贴别人的代码也没有意义。

感谢并为我的语法感到抱歉,

编辑: 之后我来到这里 post : link 我现在正在尝试使用 stm32l0 控制器访问 SD 卡。我被建议使用 FATFS 来读取设备,但我的理解是图书馆需要一种访问数据的方法:SPI。我在 STM32CubeMX 中选择了 FATFS 和 SPI2,并在 Eclipse 中导入了项目(我使用的是 HAL 和 SW4STM32)。在引脚描述中,我看到 CubeMX 中的 MISO、CK、MOSI 位于引脚 PB12、PB13、PB14 上。 但在主文件中,这些引脚从未使用过。
post 我提到的另一件事让我感到害怕:SD 卡需要以一种从未听说过的方式进行初始化。
我不知道你是否需要SPI_Init和GPIO_Init功能,如果你需要我会编辑这个消息。
无论如何,我会在早上编辑,因为 post 一定很困惑,我的大脑正在燃烧,对不起。询问您是否需要任何精确度。 谢谢!

如果您使用 CubeMx 并配置 SPI 以访问 SD 卡,则引脚会自动配置到您的代码中。查看您生成的 main.c.

中前几个函数的 definitions/implementations

如果您对 STM32 及其 HAL 驱动程序没有任何经验,请先尝试了解这些东西是如何叠加的。

最快的方法是尝试一个例子。

您所有的 CubeMx 固件库都位于

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

转到“项目”>“示例”文件夹(可能不准确 - 但路径相似),您会找到示例。

对于面临此问题的其他人,只需 select 用户在 CubeMX 中定义并使用 kiwih 的驱动程序。他们非常好并且有据可查!

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