一、初始化SD卡

需要定义两个类型句柄,SD卡句柄SD_InitTypeDef类型和SD卡信息句柄HAL_SD_CardInfoTypeDef类型,然后初始化SD卡句柄参数,其中首先必须初始化SD卡数据宽度1Bit,然后初始化完其他参数后,通过HAL_SD_Init()函数吃实话,这里有两个参数,分别为上面的两个参数,会将SD卡信息储存在HAL_SD_CardInfoTypeDef类型中,然后注意,需要重新使能SD卡数据宽度,HAL_SD_WideBusOperation_Config(),两个参数,一个句柄,一个宽度。同其他初始化一样,调用HAL_SD_Init时会调用回调函数,回调函数中,需要使能SD和GPIO的时钟,然后初始化GPIO复用。

这里需要提一下,F4上的SDIO和F7上的SDMMC两个接口,经过网上查询,并没有一个确切的说法,大概的说法是这两个接口是包含关系,F7上既有SDMMC也有SDIO接口。其实两个用法是一样的。

二、SD卡读写

读写SD卡需要几点说明,1、读写块大小必须是512字节的,在HAL_SD_ReadBlocks函数说明中注释,block size必须是512字节大小。2、读写SD卡的时候必须要关闭所有中断,本人是学习正点原子的开发板的例程,他们中例程关闭和打开中断是在sys文件中的,INTX_DISABEL和INTX_ENABLE。3、读写地址定义可以是普通地址,也可以是扇区地址,这要看你自己的读写程序了。4、字节对齐问题,读写SD卡需要地址4字节对齐,因此在读写缓冲区buf中药先判断是不是地址对齐,(u32)buf%4,若不对齐,需要先将数据写到对齐的缓冲区内,定义一个__align(4) u8 SD_BUF[512]的数组中,然后再将数据从SD_BUF中写到buf中。折旧完成了SD卡数据的基本读写操作了,当然,如果要操作文件,还要移植FATFS文件系统。

注:SD卡读写函数中,读地址的设置,是设置扇区地址还是普通的读写地址,因为在FATFS文件系统中,要配置disk_read函数,该函数的参数是扇区地址,因此为了和FATFS参数一直,因此读写SD卡函数地址最好设置为扇区地址。


关键字:STM32F407  TF卡  HAL库 引用地址:STM32F407之TF卡HAL库的使用

上一篇:STM32F103RCT6之FLASH读写操作
下一篇:有这10个关键点,在ARM下高效C编程没问题!

推荐阅读

改革开放40年,创新的种子在各经济特区和经济带播种,新技术、新理念、新政策再次为中国新商业注入新的活力,长三角地区作为经济变革前沿重要阵地,在新的经济发展时期再次呈现创新活力,为此亿欧针对各行业进行资本层面盘点,以期筛选出新经济创新下新商业代表,寻找中国新经济的潜在独角兽。亿欧以公司注册所在地为上海、浙江、江苏三地为标准,盘点了20...
智能家居系统可通过GSM/GPRS/CDMA/网络、ZigBee个域网、互联网以及小区信息网实现信息的互联互通。用户在户外可通过手机调控家中的电器和照明装置,也可及时得到家中的防盗、防火、防煤气泄漏等报警信息;在家中可通过遥控器调控家电设备。控制器还兼有可视对讲系统室内主机功能,能查阅社区发布的各类信息,必要时可向社区保安发出报警求救信号。系统主要...
NVIDIA发布重磅应用、系统以及与宝马集团合作 NVIDIA提出了下一代计算的愿景,该愿景将全球信息经济的重心从服务器转移到了新型的强大且灵活的数据。 NVIDIA创始人兼首席执行官在其加州住宅的厨房中录制的六集同时发布的主题演讲中,介绍了NVIDIA最近对Mellanox的收购,还有重盼所归的基于NVIDIA Ampere 架构的新产品以及重要的最新软件技术。 这场...
近日,亿航智能宣布与西班牙国家警察合作,共同探索自动驾驶飞行器在应急和安全领域的潜在应用案例。此前,在全球空中交通管理大会上,亿航智能载人级自动驾驶飞行器 EHang 216 在西班牙首次公开亮相,并于马德里 Cuatro Vientos 机场展出。IT之家了解到,亿航智能与西班牙国家警察计划合作把自动驾驶飞行器应用于救援、巡查和其他应急情景中。据介...

史海拾趣

问答坊 | AI 解惑

VxWorks程序员指南_Wind River

VxWorks程序员指南_Wind River 一本绝版的vxworks教程~~~听说翻译的比较差,但是看英文版还是挺累的……一般人都吃不消吧 【作 者】(美)Wind River著;王金刚等译 【丛书名】VxWorks开发人员指南丛书 【形态项】 403 ; 26cm 【出版项】 ...…

查看全部问答∨

披露外商半导体公司在华设立研发中心的居心

也许大家在看到“披露外商半导体公司在华设立研发中心的居心?”这个标题时,会觉得博主是个愤青,可是我实在不知道用什么标题了。请大家将就吧。 10年前,当我刚进入半导体产业时,我对半导体是七窃通了六窃。 笔者在上篇“外企在华设立研发中心 ...…

查看全部问答∨

来聊聊1138和8962的区别

  现象: 在网上下载的1138的tft2.4的例子同一型号的屏在8962上就运行不起来 sd_FAT32驱动的例子也在我的板子上运行不起来  但是针对8962的例子就完全可以  时钟频率(分频方式都一样)、i/o差不多什么都一样的,具体会有什么不 ...…

查看全部问答∨

DeviceEmulatorBSP 制作模拟器

请问一下各位高手,利用DeviceEmulatorBSP.msi怎么制作自己需要的SDK并包含有模拟器啊? 网上找了一些资料,但是制作出来的SDK无法弹出模拟器出来!不知道怎么使用。…

查看全部问答∨

WINCE CS8900A 移植

把WINCE 5.0可以用的驱动移植到6.0上. 1,加LAN相关上网组件 2,加CS8900驱动到driver目录下,并修改dir 3,修改SMDK****.dat SET NO_CS8900= 4,修改注册表:IOBASE和sysintr及TCP/IP设置 5,修改 #define BSP_BASE_REG_PA_CS8900A_IOBASE& ...…

查看全部问答∨

学驱动开发难吗?我想学

目前主要会C方面的东西,驱动开发都需要哪个方面的知识?最快多长时间能学完工作?…

查看全部问答∨

winCE上面的串口通信问题

下面是我的一段测试代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespac ...…

查看全部问答∨

ARM Architecture 0002

ARM  CPU的工作模式: 1.User:该模式为Unprivileged modes,该模式下的程序不能访问受保护的系统资源,不能更改CPU工作模式。如果需要跳出该模式,程序需要抛出一个异常(Exception),使CPU进入\"Exception\"模式。\"User\"模式下可以使用的 ...…

查看全部问答∨

msp430

谁有有关《MSP430系列单片机系统工程设计与实践》电子书啊…

查看全部问答∨

抢发第一帖!!Hercules介绍

作为第一个在Hercules板块中发帖滴人,怎么着也要发点儿资料! 上点儿介绍性的内容吧,好多人应该都不知道这是啥。 什么是 Hercules?Hercules 安全微处理器是基于 TI 针对汽车电子市场的 20 多年安全关键型系统专业技术、行业协作而发展成熟的硬 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved