您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF533的SD卡读写程序疑问
本帖共有518个阅读者
发表帖子 发表投票 回复主题
BF533的SD卡读写程序疑问
OG(论坛新手)
OG
头衔:社区公民
帮派:无帮无派
帖数:21
金钱:350
积分:40
注册时间:2014/3/16
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF533的SD卡读写程序疑问

unsigned char MMC_read_sector(unsigned int addr,unsigned char *Buffer)
{
unsigned char temp;
unsigned int i;

SPI_TransferByte(0xff);
temp = Write_Command_MMC(MMC_READ_BLOCK,addr<<9);
if(temp != 0x00)
{
  return(READ_BLOCK_ERROR);
}

while(SPI_TransferByte(0xff) != 0xfe);

for(i=0;i<512;i++)
{
  *Buffer++ = SPI_TransferByte(0xff);
}
// SPI_TransferByte(0xff);
// SPI_TransferByte(0xff);
  SPI_TransferByte(0xFF);
  SPI_TransferByte(0xFF);
return (1);
}

*Buffer++ = SPI_TransferByte(0xff);这是在读数据吗,读数据进buffer,为什么要传入0xff



「该帖子被 OpenADSP 在 2014-04-13 19:34:08 编辑过」

我是og,学到的都会用来帮助大家
等级:论坛新手 参考IP地址:*.*.*.*
2014/4/13 19:26:20
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
标题跟写作文一样,起码得是一句完整的语句,就一个“SD卡”当标题不行,帮你改了个。

另,我猜你用的是533,所以写的是533上sd卡问题。你要是别的处理器就自己更正吧。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2014/4/13 19:37:53
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
SPI接口标准是 主机为设备提供时钟,SPI接口的时钟只有在主机传输数据时才会产生。当主机需要获取设备的数据时,需要给设备传输时钟,这个时钟必须由主机发送数据完成,所以通常会传输0或者0xff,若此时设备有数据返回,会将数据送入SPI接收FIFO中,然后处理器判断FIFO状态,若有数据,就从寄存器读取。
所以SPI接收数据时,必然伴随着数据发送操作。读取FIFO的操作仅仅是处理器读取自身寄存器,并不会影响到外设的数据发送和接收。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/4/15 9:26:17
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159271 Call, 1 Queries, Processed in 0.031250 second(s),