2017-02-19 126 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