STM32F103完成对SD卡的数据读取

目录

1、SD卡协议简介

2、基于 STM32F103 实现在 FATFS 模式下对 SD 卡的数据读取

1.创建工程

2、实现对SD卡的读取

代码实现

 实现结果

三、总结

四、参考资料


1、SD卡协议简介

SD卡(Secure Digital Memory Card)在我们的生活中已经非常普遍了,控制器对SD卡进行读写通信操作一般有两种通信接口可选,一种是 SPI接口,另外一种就是 SDIO接口。SDIO 全称是 安全数字输入/输出接口,多媒体卡(MMC)、SD卡、SD I/O卡 都有 SDIO接口。STM32F103系列控制器有一个 SDIO主机接口,它可以与 MMC卡、SD卡、SD I/O卡 以及 CE-ATA 设备进行数据传输。

 MMC卡可以说是SD卡的前身,现阶段已经用得很少。SD I/O卡本身不是用于存储的卡,它是指利用SDIO传输协议的一种外设。比如Wi-Fi Card,它主要是提供Wi-Fi功能,有些Wi-Fi模块是使用串口或者SPI接口进行通信的,但Wi-Fi SDIO Card是使用SDIO接口进行通信的。并且一般设计SD I/O卡是可以插入到SD的插槽。CE-ATA是专为轻薄笔记本硬盘设计的硬盘高速通讯接口。

SD卡物理结构

        一般SD卡包括有存储单元、存储单元接口、电源检测、卡及接口控制器和接口驱动器 5个部分。

存储单元是存储数据部件,存储单元通过存储单元接口与卡控制单元进行数据传输;
电源检测单元保证SD卡工作在合适的电压下,如出现掉电或上状态时,它会使控制单元和存储单元接口复位;
卡及接口控制单元控制SD卡的运行状态,它包括有8个寄存器;
接口驱动器控制SD卡引脚的输入输出。
SD卡总共有8个寄存器,用于设定或表示SD卡信息。

这些寄存器只能通过对应的命令访问,SDIO定义64个命令,每个命令都有特殊意义,可以实现某一特定功能,SD卡接收到命令后,根据命令要求对SD卡内部寄存器进行修改,程序控制中只需要发送组合命令就可以实现SD卡的控制以及读写操作。

SD卡寄存器列表:

名称    bit宽度    描述
CID    128    卡识别号(Card identification number):用来识别的卡的个体号码(唯一的)
RCA    16    相对地址(Relative card address):卡的本地系统地址,初始化时,动态地由卡建议,主机核准。
DSR    16    驱动级寄存器(Driver Stage Register):配置卡的输出驱动
CSD    128    卡的特定数据(Card Specific Data):卡的操作条件信息
SCR    64    SD配置寄存器(CD Configuration Register):SD卡特殊特性信息
OCR    32    操作条件寄存器(Operation conditiongs register)
SSR    512    SD状态(SD Status):SD卡专有特征的信息
CSR    32    卡状态(Card Status):卡状态信息

2、基于 STM32F103 实现在 FATFS 模式下对 SD 卡的数据读取

1.创建工程

首先打开STMCUBEMX创建工程

配置SYS

配置SPI1

配置 GPIO
配置 PA4 引脚为 GPIO_Output,并命名为 SD_CS

 

配置FATFS

 

配置串口 USART1 

配置时钟

配置堆栈

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值