STM32F103 在 FatFs 模式下对 SD 卡的数据读取

 

目录

一、SD卡

1、SD卡物理结构

2、 SD卡命令​

 3、STM32的SDIO功能

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

1、CUbeMX创建工程

2、文件移植 

3、电路连接

4、实际效果如下

 三 、总结

四、参考资料


一、SD卡

1、SD卡物理结构

一张SD卡包括有存储单元、存储单元接口、电源检测、卡及接口控制器和接口驱动器 5 个部分,见图 36-2。存储单元是存储数据部件,存储单元通过存储单元接口与卡控制单 元进行数据传输;电源检测单元保证SD卡工作在合适的电压下,如出现掉电或上状态时, 它会使控制单元和存储单元接口复位;卡及接口控制单元控制SD卡的运行状态,它包括有 8个寄存器;接口驱动器控制 SD卡引脚的输入输出。 

SD 卡总共有 8 个寄存器,用于设定或表示 SD 卡信息,参考表 36-1。这些寄存器只能 通过对应的命令访问,对 SD卡进行控制操作并不是像操作控制器 GPIO 相关寄存器那样一 次读写一个寄存器的,它是通过命令来控制,SDIO 定义了 64 个命令,每个命令都有特殊 意义,可以实现某一特定功能,SD 卡接收到命令后,根据命令要求对 SD 卡内部寄存器进 行修改,程序控制中只需要发送组合命令就可以实现 SD卡的控制以及读写操作。 

2、 SD卡命令

 3、STM32的SDIO功能

STM32控制器有一个 SDIO,由两部分组成:SDIO适配器和 AHB 接口,见图 36-11。 SDIO 适配器提供 SDIO 主机功能,可以提供 SD 时钟、发送命令和进行数据传输。AHB 接 口用于控制器访问 SDIO适配器寄存器并且可以产生中断和 DMA请求信号

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103是ST公司出品的一款32位微控制器,它拥有强大的处理能力和丰富的外设资源。而FAT32是一种广泛应用于存储设备的文件系统格式之一,可以实现对大容量存储设备的高效管理。那么如何在STM32F103上实现对FAT32格式SD卡读写呢? 首先,需要在STM32F103上配置SD卡读写的相关外设模块。一般来说,常用的外设模块有SPI和SDIO两种,它们的差异在于SPI需要使用多个I/O口进行通讯,而SDIO则可以在单独一个I/O口上进行通讯,效率更高。在具体实现时,可以根据需要采用相应的模块,并进行相应的配置和初始化。 其次,需要在代码中实现对FAT32文件系统格式的解析。FAT32文件系统是一种基于文件链表的格式,即通过指针将不同的文件块按照顺序连接起来,形成一个完整的文件。在读写FAT32格式的SD卡时,需要先访问根目录,然后根据具体的路径和文件名定位到对应的文件块。在读取或写入文件时,需要按照文件块的顺序依次读取或写入数据,直到文件结束。在实现过程中,可以采用开源的FATFS文件系统库,也可以自行编写相应的解析代码。 最后,需要考虑一些具体的细节问题。例如,在读写SD卡时可能会发生读写错误或者SD卡拔出等问题,需要进行相应的异常处理。此外,为了提高读写速度和存储空间利用率,还需要对读取和写入数据的缓存区进行优化,并尽可能利用DMA等硬件加速模块提高效率。 综上所述,实现STM32F103FAT32格式的SD卡读写,需要对外设模块进行配置和初始化,实现对FAT32文件系统格式的解析,以及注意细节问题,达到高效和可靠的读写效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值