一、初始化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卡函数地址最好设置为扇区地址。
上一篇:STM32F103RCT6之FLASH读写操作
下一篇:有这10个关键点,在ARM下高效C编程没问题!
推荐阅读
史海拾趣
随着技术的不断成熟和产品线的不断丰富,Analytic Instruments Corp开始积极拓展市场。公司通过与行业内的知名企业和研究机构建立合作关系,成功地将产品打入多个重要的应用领域。同时,公司还加大了品牌宣传力度,通过参加行业展会、举办技术研讨会等方式,提升了品牌知名度和影响力。
随着技术的不断进步和市场的扩大,BULGIN公司在20世纪60年代成为了当时世界上最大的、产品线最为齐全的电子零件制造商之一。公司保持着快速的创新与发展,BULGIN品牌开始覆盖多国市场,为全球各地的客户提供优质的产品和服务。
随着技术的不断进步,ERA Transformers公司的产品逐渐受到了业界的广泛关注。一次,一家国际知名的电子设备制造商找到他们,希望合作开发一款适用于其新产品的变压器。这对ERA Transformers公司来说是一个难得的机会,也是一个巨大的挑战。公司迅速组织技术团队,与这家制造商紧密合作,经过数轮的设计、测试和修改,最终成功研发出了一款完全符合客户要求的高性能变压器。这一成功合作不仅为公司带来了可观的收益,更赢得了客户的极高评价和长期合作意向。
为了保持技术领先地位和市场竞争力,ERA Transformers公司非常重视创新与研发工作。公司每年都会投入大量资金用于新产品的研发和技术创新。在一次研发项目中,公司成功开发出了一种具有超高能效和极低损耗的新型变压器。这款产品的问世立即引起了市场的广泛关注,并成功获得了多项国内外专利。持续的创新与研发使得ERA Transformers公司在电子行业中始终保持着领先地位。
作为一家在半导体和通信领域具有深厚技术底蕴的公司,Conexant始终致力于技术创新和市场拓展。在不断变化的市场环境中,Conexant紧跟行业趋势,加大在新技术研发和市场推广方面的投入。通过持续创新和市场拓展,Conexant成功巩固了在行业内的领先地位,并为全球用户提供了更加优质的产品和服务。
这些故事只是CONEXANT公司在电子行业发展中的一部分,它们展示了公司在不同时期的战略决策、技术创新和市场拓展能力。这些成就不仅为CONEXANT公司赢得了业界的尊重和认可,也为整个电子行业的发展做出了重要贡献。
近年来,芯邦科技的营收规模逐渐增大,从2020年到2022年,公司的营业收入分别达到了0.99亿元、1.75亿元和1.92亿元。尽管增速呈现下降趋势,但芯邦科技在电子行业中依然保持着稳健的市场表现。同时,公司也注重研发投入,不断提升产品的技术水平和市场适应性。
VxWorks程序员指南_Wind River 一本绝版的vxworks教程~~~听说翻译的比较差,但是看英文版还是挺累的……一般人都吃不消吧 【作 者】(美)Wind River著;王金刚等译 【丛书名】VxWorks开发人员指南丛书 【形态项】 403 ; 26cm 【出版项】 ...… 查看全部问答∨ |
也许大家在看到“披露外商半导体公司在华设立研发中心的居心?”这个标题时,会觉得博主是个愤青,可是我实在不知道用什么标题了。请大家将就吧。 10年前,当我刚进入半导体产业时,我对半导体是七窃通了六窃。 笔者在上篇“外企在华设立研发中心 ...… 查看全部问答∨ |
现象: 在网上下载的1138的tft2.4的例子同一型号的屏在8962上就运行不起来 sd_FAT32驱动的例子也在我的板子上运行不起来 但是针对8962的例子就完全可以 时钟频率(分频方式都一样)、i/o差不多什么都一样的,具体会有什么不 ...… 查看全部问答∨ |
请问一下各位高手,利用DeviceEmulatorBSP.msi怎么制作自己需要的SDK并包含有模拟器啊? 网上找了一些资料,但是制作出来的SDK无法弹出模拟器出来!不知道怎么使用。… 查看全部问答∨ |
把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& ...… 查看全部问答∨ |
|
下面是我的一段测试代码: 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 CPU的工作模式: 1.User:该模式为Unprivileged modes,该模式下的程序不能访问受保护的系统资源,不能更改CPU工作模式。如果需要跳出该模式,程序需要抛出一个异常(Exception),使CPU进入\"Exception\"模式。\"User\"模式下可以使用的 ...… 查看全部问答∨ |
作为第一个在Hercules板块中发帖滴人,怎么着也要发点儿资料! 上点儿介绍性的内容吧,好多人应该都不知道这是啥。 什么是 Hercules?Hercules 安全微处理器是基于 TI 针对汽车电子市场的 20 多年安全关键型系统专业技术、行业协作而发展成熟的硬 ...… 查看全部问答∨ |