SD卡 块读写操作代码疑惑

2019-07-20 16:16发布

源代码
//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]?



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
gsndragon
1楼-- · 2019-07-20 18:27
 精彩回答 2  元偷偷看……
maple2
2楼-- · 2019-07-20 20:02
gsndragon 发表于 2017-3-11 13:48
sorry,看错了……因为那个寄存器前面4位不是设置块大小的

听君一言,茅塞顿开,犹如拨云雾见青天!

一周热门 更多>