求助:初始化SD卡SPI模式的程序

shizhu72   2009-5-15 09:00 楼主
刚刚接触这方面~
要写一个SD卡在SPI模式下的简单的读写程序~~
这两天光看文档没什么思路,而且对语言运用也不熟~
想找个初始化的程序看看,但没有找到合适的~~请高人指点~~


对C语言嵌入式开发不是很了解,请问有什么比较好的书么?

回复评论 (2)

SPI模式的初始化函数
  1. INT8U SD_Init(void)
  2. {
  3.   INT8U retry, temp;
  4.   INT8U i = 0;
  5.   INT8U CMD[] = {CMD0, 0x00, 0x00, 0x00, 0x00, 0x95};
  6.    
  7.   MSPI_Init(0);
  8.   SD_Enable();
  9.   for(i=0;i<250;i++)
  10.   __asm
  11.   {
  12.           NOP
  13.   }
  14.   for(i = 0; i < 0x0f; i++)
  15.   {
  16.           SPI_RW(0xff); //发送至少74个时钟
  17.   }      
  18.   //Send Command CMD0 to SD/SD Card
  19.   retry = 0;
  20.   do
  21.   { //retry 200 times to send CMD0 command
  22.    
  23.     temp = Write_Command_SD(CMD);
  24.     retry++;
  25.     if(retry >= 200)
  26.     { //time out
  27.        return(INIT_CMD0_ERROR); //CMD0 Error!
  28.     }
  29.   }
  30.   while(temp != 1);
  31.       
  32.   //Send Command CMD1 to SD/SD-Card
  33.   CMD[0] = CMD1; //Command 1
  34.   CMD[5] = 0xFF;
  35.   retry = 0;
  36.   do
  37.   { //retry 100 times to send CMD1 command
  38.      temp=Write_Command_SD(CMD);
  39.      retry++;
  40.      if(retry>=100)
  41.      { //time out
  42.         return(INIT_CMD1_ERROR);//CMD1 Error!
  43.      }
  44.   }
  45.   while(temp != 0);
  46.    
  47.   MSPI_Init(1);              
  48.   SD_Disable();
  49.   return(0);
  50. }
点赞  2009-5-15 09:58
谢谢~还有个问题就是SD卡在接SPI总线的时候那根时钟线应该如何接?
点赞  2009-5-17 11:46
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复