[其他ST产品] SDIO HAL库函数疑问

[复制链接]
1068|17
 楼主| powerantone 发表于 2022-8-24 09:45 | 显示全部楼层 |阅读模式
1、函数SD_FindSCR为什么要配置块大小为8byte?
/* Set Block Size To 8 Bytes */
  errorstate = SDMMC_CmdBlockLength(hsd->Instance, 8U);



2、函数SD_SendSDStatus为什么要配置块大小为64byte?
  /* Set block size for card if it is not equal to current block size for card */
  errorstate = SDMMC_CmdBlockLength(hsd->Instance, 64U);


3、在读写块操作时,标准卡的地址为什么要乘以512?
例如函数HAL_SD_WriteBlocks里
    if(hsd->SdCard.CardType != CARD_SDHC_SDXC)
    {
      add *= 512U;
    }


看不明白,求解答!!!有大神知道的吗?
海滨消消 发表于 2022-9-5 10:55 | 显示全部楼层
这种问题还没遇到过,路过帮你顶一下
Stahan 发表于 2022-9-11 22:17 | 显示全部楼层
没遇到过这问题
puppyh 发表于 2022-9-12 14:22 来自手机 | 显示全部楼层
前两个问题去看一下SD卡的读写协议,估计就明白了,N年前看过,现在都忘了。最后一个问题与文件系统的FAT表的簇的大小有关,想了解的话去看看微软的FAT原理
andygirl 发表于 2022-9-12 16:54 | 显示全部楼层
这些都是看一遍的事,耐心看看手册或许有帮助
V853 发表于 2022-9-13 13:48 | 显示全部楼层
想了解这些配置需要去了解SDIO的底层协议。建议不用研究的太深!
Bowclad 发表于 2022-9-13 19:57 | 显示全部楼层
乘以512与文件系统的FAT表的簇的大小有关
Henryko 发表于 2022-9-13 20:53 | 显示全部楼层
耐心看一下手册
地下縱情搖擺 发表于 2022-9-21 10:37 | 显示全部楼层
好像是因为每次写都是这么大吧

热爱童话世界 发表于 2022-9-21 10:59 | 显示全部楼层
512的话,是1页大小

一枝香 发表于 2022-9-21 11:22 | 显示全部楼层
发送SD这个标记的,配置块大小,这块我还不知道,但是剩下俩都是跟数据相关的

晚晚皆安 发表于 2022-9-21 11:45 | 显示全部楼层
SCR是啥啊?是校验么?

笨蛋无需搭理 发表于 2022-9-21 12:07 | 显示全部楼层
我觉得乘以512是因为要一页一页操作

占得人间第一春 发表于 2022-9-21 12:29 | 显示全部楼层
这个其实是跟SD卡的结构相关的

喜爱弄人 发表于 2022-9-21 12:51 | 显示全部楼层
你可以查看一下SD的操作机制,这个都是标准操作的

討厭和人归類 发表于 2022-9-21 13:14 | 显示全部楼层
就按这个规则操作就行了,其实就是对数据的一个规范

林间有新绿 发表于 2022-9-21 13:36 | 显示全部楼层
写块,一块就是512字节吧

风吻过你的不羁 发表于 2022-9-21 13:59 | 显示全部楼层
我觉得就正常使用就行吧,应该就存储大小,每次操作就这么大


您需要登录后才可以回帖 登录 | 注册

本版积分规则

679

主题

4005

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部