大家好: 
    我移植的程序能写进去,但是不能读,请大家帮忙看看。 
    首先是写,在sd卡建立一个123.txt。然后在里面写数据,程序为 
const unsigned char fat[512] ={ "123456"  }; 
char buf[512]; 
int main(void) 
{ 
    FATFS *fs,fatfs;            // Work area (file system object) for logical drive 
    FRESULT res;         // FatFs function common result code       
    FIL fsrc;            // file objects 
    UINT br; 
    RCC_Config(); 
    USART_Config(); 
    fs = &fatfs; 
   f_mount(0, fs); 
    res = f_open(&fsrc, "123.txt", FA_CREATE_ALWAYS  | FA_WRITE); 
    res = f_write(&fsrc, fat, 512, &br);  
    f_close(&fsrc); 
    f_mount(0, NULL); 
    while (1) 
    { 
    } 
} 
这个程序正常,能够建立123.txt并且写入123456等数据,下面是读 
int main(void) 
{ 
    FATFS *fs,fatfs;            // Work area (file system object) for logical drive 
    FRESULT res;         // FatFs function common result code       
    FIL fsrc;            // file objects 
    UINT br; 
    RCC_Config(); 
    USART_Config(); 
    fs = &fatfs; 
   f_mount(0, fs); 
    res = f_open(&fsrc, "123.txt", FA_OPEN_EXISTING | FA_READ); 
    res = f_read(&fsrc, buf, 512, &br);  
    f_close(&fsrc); 
    f_mount(0, NULL); 
    while (1) 
    { 
    } 
} 
这个程序就读不出来我以前写入的数据,读出来全是0.我用仿真器跟了一下,发现在f_open这个函数中的 
fp->fsize = LD_DWORD(&dir[DIR_FileSize]);这个fp->fsize为0.请大家帮帮忙看看这是为什么? 
生成的文件用usb读卡器查看 
 
 |