do { //SPI_CS_Deassert(); /* 3. 置CS为高 dessert CS */ //SPI_SendByte(0xFF); //SPI_CS_Assert(); /* 1. 置CS为低 assert CS */ /* 发出CMD1, 查询卡的状态, send CMD1 to poll card status */ ret = SD_SendCmd(CMD1, param, CMD1_R, resp); if (ret != SD_NO_ERR) return ret; i ++; //(i <= SD_IDLE_WAIT_MAX)
}while (((resp[0] & MSK_IDLE) == MSK_IDLE) && 1);
调试发现,程序死在了这里。另外,万利的程序为什么要“msd片选拉高--〉发送一次dummy--〉马上把msd片选拉低--〉发送后续真正的sd卡的命令。”注:dummy=0XFF,我把while的循环条件改了,原来的(i <= SD_IDLE_WAIT_MAX)换成了“1”
|