大家好!我有个疑问,我获取SD卡的CSD的信息,很奇怪。我的用的是Kingston 4g的SDHC的卡,获取的数据时C_SIZE 是0, 一个block的size是512Byte,总的SD卡的size才1M,这是什么原因。。我把我获取的方法贴出来,大家帮忙看下, 这样对吗?
SD_SendCmd(0x09, s_RCA, 0); //發送CSD,可以獲取卡的存儲等信息
READ_BL_LEN = ((rHM1_RSPREG2 >> 8) & 0xf);//最大读取数据块长
READ_BL_PARTIAL = ((rHM1_RSPREG2 >> 7) & 0x1) ;//允许读的部分块
C_SIZE = ((rHM1_RSPREG2 & 0x3) << 10) | ((rHM1_RSPREG1 >> 22) & 0x3ff);//设备容量
C_SIZE_MULT = ((rHM1_RSPREG1 >> 7) & 0x7);//容量乘子
CardSize = (1 << READ_BL_LEN) * (C_SIZE + 1) * (1 << (C_SIZE_MULT + 2)) / 1048576;//卡的容量
OneBlockSize = (1 << READ_BL_LEN);//1个block的size
|