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]?



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。