|
还有个问题
多谢香主给穿了条裤子,我把程序改了一下,是这样操作的:
void SDInit() { SD_Init(); SD_GetCardInfo(&SDCardInfo); SD_SelectDeselect((u32) (SDCardInfo.RCA << 16)); SD_EnableWideBusOperation(SDIO_BusWide_4b); SD_SetDeviceMode(SD_DMA_MODE);
} void Fat32Test() { int i,j; char txt[30]; u32 buff[128];
signed short temp; RCC_Config(); SDInit(); for(i=0;i<128;i++) buff=0x55555555; //SD_WriteMultiBlocks(0x2602200,buff,512,20);
SD_Erase(0x00,246780*512); for(i=50;i<100;i++) { //SD_Erase(i*512,(i+1)*512); SD_WriteBlock(i*512,buff,512); Delayms(100); } }
int main(void) {
#ifdef DEBUG debug(); #endif Fat32Test(); while (1) {
} } 发现还是不能对SD卡连续读写操作,具体表现为 只有0x000256这个block被写了0x55555555其他的都没有被操作,这是怎么回事,是不是SD卡的库函数有bug呢?还是SD卡不支持连续操作呢?或者需要读某些SD卡寄存器呢? |
|