STM32CubeMX配置SDIO模式(非DMA方式)

1.问题描述: 使用STM32CubeMX配置SDIO模式,读取SD卡的信息。
2.实际操作: (1)CubeMX软件界面配置: I.首先是Pinout界面选择:
STM32CubeMX配置SDIO模式(非DMA方式)
文章图片

II.接下来是Configuration界面,点击下图的SDIO,其中串口1是为了输出调试信息。
STM32CubeMX配置SDIO模式(非DMA方式)
文章图片

在SDIO选项里,习惯性开启全局中断和DMA使能,实际测试中并未用到。其他全部默认。
STM32CubeMX配置SDIO模式(非DMA方式)
文章图片

(2)KEIL5生成代码 首先贴出之前找到的一份参考资料。后续的一些SD读取操作可以参考该文章。
http://www.stmcu.org/module/forum/thread-604576-1-1.html
本文章里最核心的配置部分在于到sdio.c文件的MX_SDIO_SD_Init函数里添加如下图注释的两句代码。
STM32CubeMX配置SDIO模式(非DMA方式)
文章图片

这样配置SDIO初始化基本完成。但由于此两句代码均不在用户区,所以当工程更新时,用户需要重新添加代码函数,十分不便。
本人仔细察看cubeMX生成的工程源码,发现在bsp_driver_sd.c这个文件夹下面,BSP_SD_Init这个函数里就包括有以上提到的两句初始化代码。所以实际在main函数中的用户代码段中调用该函数,既可配置成功,又没有重新添加代码的烦恼。实际测试代码如下红框内所示:
STM32CubeMX配置SDIO模式(非DMA方式)
文章图片

(3)测试结果: 【STM32CubeMX配置SDIO模式(非DMA方式)】STM32CubeMX配置SDIO模式(非DMA方式)
文章图片

    推荐阅读