下面是几种卡的类型(容量)
![c178d7c17caf497f724223e455ab8504.png](https://i-blog.csdnimg.cn/blog_migrate/af6d3cf0a830631b0de04cd9079b5874.jpeg)
下面来说明一下SD卡的引脚
![325ee81fe50b4cdd2ba41903961fd2e0.png](https://i-blog.csdnimg.cn/blog_migrate/84ce914bb23f4f53009176f9dfac02d5.jpeg)
SD卡的读取方式有两种:SDIO、SPI
【SDIO模式】
CLK:时钟,通信过程需要的东西,没这个东西,数据会不稳定
CMD:命令,可下达命令,例如读取SD卡的信息,或是写入数据等等
DAT0、1、2、3:数据线
VCC、VSS:电源和地
【SPI模式】
CLK:时钟,理由同SDIO里面的CLK
MOSI:命令或数据输出到SD卡
MISO:SD卡传输数据到主机
CS:片选,选择是否要操作当前的SD卡
SDIO的存储速度会高于SPI,假设都是SD卡传输数据到主机
SPI只有MISO这1条数据线,而SDIO有4条数据线(当然,SDIO也可以只使用1条数据线来传输)
另外,SDIO相当于总线,它可以挂载很多SD卡,但是STM32F4只支持一张SD卡
在与SD卡操作的过程中,会有两种不同的操作频率
第一种:识别SD卡阶段的时钟频率FOD,最高为400KHz
第二种:后续数据传输的时钟频率FPP,默认最高为25MHz,还可以透过寄存器修改,修改后最高为50MHz
下面介绍SD卡的8个寄存器
![a36b5f3cc667a3760429718601f8783c.png](https://i-blog.csdnimg.cn/blog_migrate/c5fc4a4191bde878b0ac984c4b05ad86.jpeg)
CID:卡识别寄存器,一些制造商ID、版本、日期等相关讯息
RCA:相对卡地址寄存器,初始化时,动态由主机确定,后续挂载在SDIO总线上时,透过RCA找到对应的SD卡来进行操作
DSR:驱动级寄存器,配置卡的输出驱动
CSD:卡的特殊数据寄存器,SD卡的操作信息
SCR:SD配置寄存器,SD卡的特殊信息
OCR:操作条件寄存器,例如SD卡的电压信息
SSR:SD状态寄存器,SD卡专有的特征信息
CSR:SD卡状态寄存器,SD卡的状态信息