大家好:
我移植的程序能写进去,但是不能读,请大家帮忙看看。
首先是写,在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.请大家帮帮忙看看这是为什么? |