⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sd卡的读操作.c

📁 Altera FPGA工程师成长手册源文件清华大学
💻 C
字号:
urlsigned char SD_read_sector(unsigned long address,unsigned char{buffer)
    //SD卡读函数
unsigned char rddata[1],wrdata[1];
unsigned int j;
unsigned char cmdl7[]={0x51,0x00,0x00,0x00,0x00,0xff};//CMDl7
address<<=9;    //将扇区地址转化为字节地址
cmdl7[1]=((address & 0xff000000)>>24);    //将字节地址写入到CMDl7当中
cmdl7[2]=((address & 0x00ff0000)>>16);
cmdl7[3]=((address & 0x0000ff00)>>8);
CS_EN=0;    //CS_EN置为低电平,使SPI内核的SS_n不被屏蔽
IOWR_ALTERA_AVALON_PIO_DATA(CS_EN_BASE,CS_EN);
do
 { rddata[0]=Write_Cmd(cmdl7);    //写入CMDl7命令并读取返回值
}
while(rddata[0]!=0);  //返回值为0表示命令写入成功
do
 { 
alt_avalon_spi_command(SPI_BASE,0,0,NULL,1,rddata,1);
} 
while(rddata[0]!=0xfe);//从DO上读取数据,当数据为0xfe时,
    //表示后续字节是512字节的数据
alt_avalon_spi_command(SPI_BASE,0,0,NULL,512,buffer,1);
alt_avalon_spi_command(SPI_BASE,0,0,NULL,1,rddata,1);
    //读取两个字节的CRC校验码
alt_avalon_spi_command(SPI_BASE,0,0,NULL,1,rddata,1);
CS_EN=1;
IOWR_ALTERA_AVALON_PIO_DATA(CS_EN_BASE,CS_EN);
    //将SD卡的CS置为高电平,关闭SD卡的片选
wrdata[0]=0xff;
alt_avalon_spi_command(SPI_BASE,0,1,WRDATA,0,NULL,0);
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -