STM32 HAL库 实现基于SPI模式的SD卡、TF卡FATS文件系统+模拟U盘的应用笔记

前言

        很多单片机不带SDIO接口,所以在使用SD卡时必须使用SPI模式进行读写。

        想做一个基于SPI的SD卡文件系统读写SD卡上的文件,再配合USB接口做一个模拟U盘。只能利用业余时间慢慢更新,也不知道能不能坚持下去。

        我会把从零开始开发一个程序需要经历的过程一一的记录下来。做成一个奶妈级的单片机开发笔记。

    效果演示

        https://www.bilibili.com/video/BV1Gb4y1m77q?share_source=copy_web

 

 一、硬件简介

 

  1.SD卡和MicroSD卡(TF卡)的区别

        由下图可以很容易的看出TF卡只是比SD卡少了一个3脚Vss脚,其它的管脚顺序是完全一样的。MicroSD卡也叫做TF卡,为了方便描述,之后的文章中把SD卡和TF卡统称为SD卡。

  2.工作模式

        SD卡有两种工作模式,SD BUS模式和SPI模式。SD BUS模式采用4个数据线和1个时钟线。而在SPI模式下,需要1个数据输出线、1个数据输入

  • 12
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
STM32F103是一款32位的ARM Cortex-M3系列微控制器,具有较高的性能和丰富的外设资源。要实现基于SPISD卡器,可以按照以下步骤进行: 1. 硬件连接:将SD卡器的MISO(Master-In-Slave-Out),MOSI(Master-Out-Slave-In),SCK(SPI时钟线)和CS(片选)分别连接到STM32F103的相应引脚。 2. 配置SPI外设:在STM32CubeIDE中,通过HAL库函数配置SPI外设,设置通信速率、数据位宽、数据传输模式等参数。 3. 初始化SD卡:通过SPI发送初始化命令给SD卡器,进行SD卡的初始化,例如设置工作电压、选择SPI模式等。 4. 发送指令:通过SPISD卡发送指令进行读写操作。例如,可以发送CMD0命令来复位SD卡,CMD8命令来获取SD卡的特性等。 5. 数据传输:通过SPI进行数据传输。可以通过CMD17命令选择块号并读取SD卡上的数据块,或者使用CMD24命令选择块号并向SD卡写入数据块。 6. 错误处理:在进行SD卡读写过程中,需要根据返回的响应码进行错误处理。比如,如果接收到的响应码表明命令执行失败,可以进行相应的错误处理。 7. 关闭SD卡:在程序结束或切换到其他操作之前,使用CMD12命令关闭SD卡。 总之,通过配置SPI外设和通过SPI发送命令和数据来实现基于SPISD卡器。需要注意的是,具体的代码实现和配置可能会因不同的开发环境、工具链和SD卡器而有所不同。因此,以上提供的步骤仅为一般性指导,具体实施时还需参考相关文档和资料。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专业业余临时工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值