高级会员

- 积分
- 531
- 金钱
- 531
- 注册时间
- 2015-12-2
- 在线时间
- 164 小时
|
用的原子哥的程序,但是SD卡是自己家里找的,256MB 大小 SDSC V1.1卡 初始化成功了,我用SPI模式读写的时候都OK得 但是当我用SDIO读写扇区的时候,再程序内卡死了,卡在
while(!(SDIO->STA&((1<<10)|(1<<4)|(1<<1)|(1<<3)|(1<<9))))//êy¾Y¿é·¢Ëí3é1|/ÏÂòç/CRC/3¬ê±/Æeê¼Î»′íÎó
{
if(SDIO_GetFlagStatus(SDIO_FLAG_TXFIFOHE) != RESET) //·¢ËíÇø°ë¿Õ,±íê¾Öáéù′æáË8¸ö×Ö
{
if((tlen-bytestransferred)<SD_HALFFIFOBYTES)//2»1»32×Ö½úáË
{
restwords=((tlen-bytestransferred)%4==0)?((tlen-bytestransferred)/4) (tlen-bytestransferred)/4+1);
for(count=0;count<restwords;count++,tempbuff++,bytestransferred+=4)
{
SDIO_WriteData(*tempbuff);
}
}else
{
for(count=0;count<8;count++)
{
SDIO_WriteData(*(tempbuff+count));
}
tempbuff+=8;
bytestransferred+=32;
}
timeout=0X3FFFFFFF; //D′êy¾Yòç3öê±¼ä
SDIO_ClearFlag(SDIO_FLAG_TXFIFOHE);
}else
{
if(timeout==0)return SD_DATA_TIMEOUT;
timeout--;
}
}
这里,读取SDIO->STA的内容是0x00045000,也就是第12,14,18位为1.
所以可以进while,可以进if(SDIO_GetFlagStatus(SDIO_FLAG_TXFIFOHE) != RESET)
但是里面已经没有数据了,于是 就这样一直while。。。。
请教大神,请教原子哥,这是啥问题啊
|
|