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

1.问题描述

使用STM32CubeMX配置SDIO模式,读取SD卡的信息。

2.实际操作

(1)CubeMX软件界面配置:

I.首先是Pinout界面选择:
这里写图片描述
II.接下来是Configuration界面,点击下图的SDIO,其中串口1是为了输出调试信息。
STM32CubeMX配置SDIO模式(非DMA方式)_第1张图片
在SDIO选项里,习惯性开启全局中断和DMA使能,实际测试中并未用到。其他全部默认。
STM32CubeMX配置SDIO模式(非DMA方式)_第2张图片

(2)KEIL5生成代码

首先贴出之前找到的一份参考资料。后续的一些SD读取操作可以参考该文章。
http://www.stmcu.org/module/forum/thread-604576-1-1.html
本文章里最核心的配置部分在于到sdio.c文件的MX_SDIO_SD_Init函数里添加如下图注释的两句代码。
STM32CubeMX配置SDIO模式(非DMA方式)_第3张图片
这样配置SDIO初始化基本完成。但由于此两句代码均不在用户区,所以当工程更新时,用户需要重新添加代码函数,十分不便。
本人仔细察看cubeMX生成的工程源码,发现在bsp_driver_sd.c这个文件夹下面,BSP_SD_Init这个函数里就包括有以上提到的两句初始化代码。所以实际在main函数中的用户代码段中调用该函数,既可配置成功,又没有重新添加代码的烦恼。实际测试代码如下红框内所示:
STM32CubeMX配置SDIO模式(非DMA方式)_第4张图片

(3)测试结果:

STM32CubeMX配置SDIO模式(非DMA方式)_第5张图片

你可能感兴趣的:(stm32)