完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我仿真了一下,把csd当中的一些数据读出来,但是我不明白,这些数据代表什么意识,我又看了CSD_register,用里面计算的公式 来验证,还是感觉不正确,不理解这些参数代表什么作用。
i = csd[6]&0x03; //csd[6]=0x83, 0x0003 i<<=8; //0x0300 i += csd[7]; //csd[7]=0xcd, 0x03cd i*1个区=32个块 i<<=2; //0x0f34 i += ((csd[8]&0xc0)>>6);//csd[8]=0x30,(csd[8]&0xc0)=0x00 //C_SIZE_MULT r1 = csd[9]&0x03; //csd[9]=0xb7, 0x03 r1<<=1; //0x06 r1 += ((csd[10]&0x80)>>7);//csd[10]=0xff r1+=2;//BLOCKNR //r1=9 temp = 1; // while(r1) // { temp*=2; // r1--; // temp=512(0x0200)块倍数 } Capacity = ((u32)(i+1))*((u32)temp);//0x001e6a00 BLOCKNR = (C_SIZE)* MULT // READ_BL_LEN i = csd[5]&0x0f; // 0x0a(1010)1024 好像这里更像扇区的值 //BLOCK_LEN temp = 1; // while(i) // { temp*=2; // i--; // temp=1024 } //The final result Capacity *= (u32)temp;//字节为单位 0x79a80000 CSD_register里面的公式: 存储器容量= BLOCKNR * BLOCK_LEN BLOCKNR = (C_SIZE)* MULT MULT = (C_SIZE_MULT << 8) * 2^(C_SIZE_MULT + 2) BLOCK_LEN = (READ_BL_LEN << 12) * 2^(READ_BL_LEN) 好像这里的计算不是按照这个计算公式来的, 我大致看一了下,这里只用到csd[5:10],能不能解释一下这6个寄存器当中的内容是什么用处?? |
|
相关推荐
1个回答
|
|
这个你要看SD卡的资料了,看光盘的sd卡资料,然后找找csd的描述.
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1659 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1571 浏览 1 评论
998 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
695 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1617 浏览 2 评论
1878浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
664浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
530浏览 3评论
548浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
517浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 17:26 , Processed in 0.801955 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号