在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于AT89C52單片機的SD卡的讀寫設計

      基于AT89C52單片機的SD卡的讀寫設計

      作者: 時間:2010-01-14 來源:網絡 收藏

        { CLK=0;

        DataI=0; // write

        if(val0x80) DataI=1;

        val=1;

        CLK=1;

        if(DataO)val|=1; // read

        }

        CLK=0;

        return val;

        }

        卡的初始化

        對卡進行操作首先要對卡進行初始化,初始化的過程中設置SD卡工作在SPI模式,其流程圖如圖3所示。

        在復位成功之后可以通過CMD55和ACMD41判斷當前電壓是否在工作范圍內。主機還可以繼續(xù)通過CMD10讀取SD卡的CID寄存器,通過CMD16設置數(shù)據(jù)Block長度,通過CMD9讀取卡的CSD寄存器。從CSD寄存器中,主機可獲知卡容量,支持的命令集等重要參數(shù)。SD卡初始化的C語言程序如下:

        unsigned char SD_Init(void)

        { unsigned char retry,temp;

        unsigned char i;

        for (i=0;i0x0f;i++)

        { SPI_TransferByte(0xff); //延遲74個以上的時鐘

        }

        SD_Enable(); //開片選

        SPI_TransferByte(SD_RESET); //發(fā)送復位命令

        SPI_TransferByte(0x00);

        SPI_TransferByte(0x00);

        SPI_TransferByte(0x00);

        SPI_TransferByte(0x00);

        SPI_TransferByte(0x95);

        SPI_TransferByte(0xff);

        SPI_TransferByte(0xff);

        retry=0;

        do{ temp=Write_Command_SD(SD_INIT,0);

        //發(fā)送初始化命令

        retry++;

        if(retry==100) //重試100次

        {SD_Disable(); //關片選

        return(INIT_CMD1_ERROR);

        //如果重試100次失敗返回錯誤號

        }

        }while(temp!=0);

        SD_Disable(); //關片選

        return(TRUE); //返回成功

        }



      評論


      相關推薦

      技術專區(qū)

      關閉