SD卡存储采集数据电路设计-毕业论文_图文

导读:桂林电子科技大学毕业设计(论文)报告用纸第39页共36页,buffer:指向数据缓冲区的指针,说明后面的是512字节的数据了for(j=0;j<512;j++)//将数,桂林电子科技大学毕业设计(论文)报告用纸第39页共36页-隶属模块:SD卡模块-函数属性:外部,供用户调用-参数说明:addr:扇区地址buffer:指向数据缓冲区的指针-返回说明:调用成功,返回0x00,否则返回REA

SD卡存储采集数据电路设计-毕业论文_图文

桂林电子科技大学毕业设计(论文)报告用纸 第 39 页 共 36 页

- 隶属模块:SD卡模块

- 函数属性:外部,供用户调用

- 参数说明:addr:扇区地址

buffer:指向数据缓冲区的指针

- 返回说明:调用成功,返回0x00,否则返回READ_BLOCK_ERROR (sd.h中有定义)

- 注:SD卡初始化成功后,读写扇区时,尽量将SPI速度提上来,提高效率

****************************************************************************/

unsigned char SD_Read_Sector(unsigned long addr,unsigned char *buffer)//从SD卡的指定扇区中读出512个字节,使用CMD17(17号命令)

{

unsigned int j;

unsigned char time,temp;

unsigned char pcmd[]={0x51,0x00,0x00,0x00,0x00,0xff}; //CMD17的字节序列

addr<<=9; //addr=addr*512 将块地址(扇区地址)转为字节地址

pcmd[1]=((addr&0xff000000)>>24);//将字节地址写入到CMD17字节序列中

pcmd[2]=((addr&0x00FF0000)>>16);

pcmd[3]=((addr&0x0000FF00)>>8);

SD_CS=0;//打开片选

ime=0;

do

{

temp=SD_Write_Cmd(pcmd); //写入CMD17

time++;

if(time==TRY_TIME)

{

return(READ_BLOCK_ERROR); //读块失败

}

}while(temp!=0);

while (SD_spi_read()!= 0xfe); //一直读,当读到0xfe时,说明后面的是512字节的数据了 for(j=0;j<512;j++) //将数据写入到数据缓冲区中

{

buffer[j]=SD_spi_read();

}

SD_spi_read();

SD_spi_read();//读取两个字节的CRC校验码,不用关心它们

SD_CS=1; //SD卡关闭片选

SD_spi_write(0xff);//按照SD卡的操作时序在这里补8个时钟

return 0;

}

五星文库wxphp.com包含总结汇报、党团工作、人文社科、IT计算机、文档下载、外语学习、行业论文、教学研究、工作范文、考试资料以及SD卡存储采集数据电路设计-毕业论文_图文等内容。

本文共12页1<<9101112