OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3852|回复: 2

SD卡 块读写操作代码疑惑

[复制链接]

3

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2017-3-11
在线时间
15 小时
发表于 2017-3-11 12:09:56 | 显示全部楼层 |阅读模式
源代码
//buf:读缓冲区
//addr:读取地址
//blksize:块大小
SD_Error SD_ReadBlock(u8 *buf,long long addr,u16 blksize)

      ...
      //配置DPSM
      SDIO_DataBlockSize= power<<4 ;    //设置  块大小
      SDIO_DataInitStructure.SDIO_DataLength= blksize ;   //设置  数据的长度
      SDIO_DataInitStructure.SDIO_DataTimeOut=SD_DATATIMEOUT ;
      SDIO_DataInitStructure.SDIO_DPSM=SDIO_DPSM_Enable;
      SDIO_DataInitStructure.SDIO_TransferDir=SDIO_TransferDir_ToSDIO;
      SDIO_DataInitStructure.SDIO_TransferMode=SDIO_TransferMode_Block;
      SDIO_DataConfig(&SDIO_DataInitStructure);
     ...



第一行:SDIO_DataInitStructure.SDIO_DataBlockSize= power<<4 ;
疑问:power左移4的真正目的是什么,为什么不直接设置块大小[1,2,4,8,16,32...16384]?



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
618
金钱
618
注册时间
2015-11-20
在线时间
89 小时
发表于 2017-3-11 13:48:43 | 显示全部楼层
本帖最后由 gsndragon 于 2017-3-11 13:59 编辑

sorry,看错了……因为那个寄存器前面4位不是设置块大小的

11.JPG
回复 支持 反对

使用道具 举报

3

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2017-3-11
在线时间
15 小时
 楼主| 发表于 2017-3-11 15:13:43 | 显示全部楼层
gsndragon 发表于 2017-3-11 13:48
sorry,看错了……因为那个寄存器前面4位不是设置块大小的

听君一言,茅塞顿开,犹如拨云雾见青天!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-13 14:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表