标题: 读sd卡的问题 [打印本页]
作者: hihixyj 时间: 2008-7-15 15:42 标题: 读sd卡的问题
de1板子 自带的sd卡程序中有一段读sd的代码:
BYTE SD_read_lba(BYTE *buff,UINT32 lba,UINT32 seccnt)
{
BYTE c=0;
UINT32 i,j;
lba+=101; //不明白此处101代表什么意思
for(j=0;j<seccnt;j++)
{
{
cmd_buffer[0] = cmd17[0];
cmd_buffer[1] = (lba>>15)&0xff;
cmd_buffer[2] = (lba>>7)&0xff;
cmd_buffer[3] = (lba<<1)&0xff;
cmd_buffer[4] = 0;
lba++;//此处lba+1有什么用处呢?
send_cmd(cmd_buffer); //调用发送cmd的函数,将cmd17发送出去
}
....读data线上的数据
}
在main()函数里,初始化lba=720,循环调用SD_read_lba()函数
lba代表什么量呢?
谢谢!!
作者: caopengly 时间: 2008-7-16 20:37
这个看一下sd卡的读数据datasheet就知道了,我估计是类似于控制字的东西,将控制字分开写入不同的寄存器:
cmd_buffer[0] = cmd17[0];
cmd_buffer[1] = (lba>>15)&0xff;
cmd_buffer[2] = (lba>>7)&0xff;
cmd_buffer[3] = (lba<<1)&0xff;
cmd_buffer[4] = 0;。
作者: nanshi320 时间: 2008-8-7 10:04
难。我也想知道
[em09]
作者: ctqy 时间: 2008-8-27 14:31
lba是扇区号。
作者: gslcugb 时间: 2009-3-5 15:51
是逻辑扇区号还是物理扇区号呢。我的SD卡是一个G的。数据存放的位置OFFSEET是2007040,我想读这里的数据。谢谢!
作者: kyo__022 时间: 2009-10-30 22:18
不是扇区号,SECCNT才是,这个程序是一个扇区,一个扇区的读数据的,lba,是cmd17命令的地址参数,表示读取的开始地址,在SD卡的说明文档里有
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |