首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

读sd卡的问题

读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代表什么量呢?

谢谢!!

这个看一下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;

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm

难。我也想知道

[em09]
lba是扇区号。

是逻辑扇区号还是物理扇区号呢。我的SD卡是一个G的。数据存放的位置OFFSEET是2007040,我想读这里的数据。谢谢!

不是扇区号,SECCNT才是,这个程序是一个扇区,一个扇区的读数据的,lba,是cmd17命令的地址参数,表示读取的开始地址,在SD卡的说明文档里有
返回列表