u8 SD_ReadDisk(u8*buf,u32 sector,u8 cnt)
{
u8 sta=SD_OK;
long long lsector=sector;
u8 n;
lsector<<=9;
if((u32)buf%4!=0)
{
for(n=0;n<cnt;n++)
{
sta=SD_ReadBlock(SDIO_DATA_BUFFER,lsector+512*n,512);//单个sector的读操作
memcpy(buf,SDIO_DATA_BUFFER,512);
buf+=512;
}
}else
{
if(cnt==1)sta=SD_ReadBlock(buf,lsector,512); //单个sector的读操作
else sta=SD_ReadMultiBlocks(buf,lsector,512,cnt);//多个sector
}
return sta;
}
为什么 扇区要变成long long,然后左移9位?一开始我以为是SD卡的不同,一类卡需要扇区左移9,因为在SD_ReadBlock中 又重新右移了9位,重新和原先一样。 但是我如果把这移动的代码注释掉,会发现图片显示就乱了?? 求解,这个 是什么用啊? |