sd卡的初始化.c

来自「Altera FPGA工程师成长手册源文件清华大学」· C语言 代码 · 共 24 行

C
24
字号
unsigned char SD_Init()    	//初始化函数,使用CMD55+ACMD41命令
{
unsigned char rddata_a[1],rddata b[1],wrdata[1];
unsigned char time;
unsigned char cmd55[]=(0x77,0x00,0x00,0x00,0x00,0xff);
unsigned char acmd41[]=(0x69,0x0f,0xf0,0x00,0x00,0xff);
CS_EN=0;    				//CS EN置为低电平,使SPI内核的SS_n不被屏蔽
IOWR_ALTERA_AVALON_PIO_DATA(CS_EN_BASE,CS_EN);
do
{
do
    {
    rddata_a[0]=Write_Cmd(cmd55);
    }while(rddata_a[0]!=1); 	//返回值为1时,表示CMD55发送成功
    rddata_b[0];
Write_Cmd(acmd41);     //发送ACMD41,并读取返回值
}while(rddata_b[0]!=0);		//返回值为0时,表示ACMD41发送成功
CS_EN=1;    				//CS_EN置为高电平,屏蔽SPI内核的SS_n
 IOWR_ALTERA_AVALON_PIO_DATA(CS_EN_BASE,CS_EN);
wrdata[0]=0xff;
alt_avalon_spi_command(SPI_BASE,0,1,wrdata,0,NULL,0);//发送8个时钟
return(0);   		 		//返回0,表示初始化操作成功
}

⌨️ 快捷键说明

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