STM32F407ZGT6使用SDIO方式驱动SD卡

本文详细介绍了如何在STM32F407ZGT6上通过SDIO接口移植官方固件库V1.5.1来驱动SD卡。内容涉及SDIO接口的基础知识、SD卡的类型和速度标准,以及移植过程中文件的拷贝、修改和工程配置步骤。在移植完成后,作者展示了如何解决编译错误并进行SD卡的测试,为后续的FATFS文件系统移植打下基础。
摘要由CSDN通过智能技术生成

原文地址::STM32F407ZGT6使用SDIO方式驱动SD卡 - JavaShuo

 相关文章

1、【STM32】 STM32官方标准固件库概述----【STM32】 STM32官方标准固件库概述_沧海一笑-dj的博客-CSDN博客_什么是stm32的固件库

2、stm32 sdio调试,修改官方例程bug,已成功调通SDIO读取SD卡----stm32 sdio调试,修改官方例程bug,已成功调通SDIO读取SD卡_cokewei的博客-CSDN博客_stm32sdio例程

3、https://community.st.com/s/global-search/stm3210e_eval_sdio_sd.c 

4、https://community.st.com/s/global-search/CmdResp1Error 

5、https://www.csdn.net/tags/NtzaQg3sNTUxMzMtYmxvZwO0O0OO0O0O.html 

6、正点原子的代码 初始化金士顿8G Class 4 TF卡不成功 - STM32/STM8单片机论坛 - ST MCU意法半导体官方技术支持论坛 - 21ic电子技术开发论坛 7、SDIO + FATFS 写内存映射地址数据 死循环在 CmdResp1Error-OpenEdv-开源电子网

 

STM32F407ZGT6使用SDIO方式驱动SD卡

简介

本文主要讲解的是移植官方固件库(V1.5.1)中是SDIO来驱动SD卡。

SDIO

SDIO接口是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备。

SDIO1.0标准定义了两种类型的SDIO卡:

  • 1、全速的SDIO卡,传输率可以超过100Mbps;
  • 2、低速的SDIO卡,支援的时脉速率在0至400KHz之间。

SDIO协议是由SD卡的协议演化升级而来的,很多地方保留了SD卡的读写协议,同时SDIO协议又在SD卡协议之上添加了CMD52和CMD53命令。由于这个,SDIO和SD卡规范间的一个重要区别是增加了低速标准,低速卡的目标应用是以最小的硬件开支来支持低速I/O能力。低速卡支持类似调制解调器,条形码扫描仪和GPS接收器等应用。高速卡支持网卡,电视卡以及组合卡等。组合卡指的是存储器+SDIO,对组合卡来操作需要全速和4BIT的传输模式,这是SDIO1.0标准规定的。

移植操作

注意查看图片中的路径
图一:如下
将选择的4个文件夹拷贝到你的过程下面(注意查看路径)

拷贝完成之后,请看图二:如下
将该路径下的的mian.c和main.h两个文件夹拷贝到工程下(注意该文件在固件库中的路径)

拷贝完毕之后,将main.c和main.h的名字改成—>SD_test.c和SD_test.h,内容可以进行相应的删除和更改!

将stm324xg_eval.c和stm324xg_eval.h中只保留跟SD卡相关的部分,其他进行注释即可,也可以不用进行注释,只要你不嫌占内存

如图3,就是我拷贝完毕并且进行更改之后的样子


打开工程,将这几个文件添加进工程中,先把SD_test.c中的main函数的名字改成SD_test
如图:


到这里,SD_test函数就更改完毕了,接下来进行扇区擦除、单模块擦除、多模块擦除函数的更改




进行编译,不出意外的话,会出现一个错误,
入下图:

将该图中的“stm32_eval_legacy.h”进行屏蔽或者删除即可
再次进行进行编译就会0错误
包含相应的.h,然后进行SD测试
测试结果如下
 接下来可以就进行FATFS文件系统的移植

相关文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值