现在正在进行FATFS的移植,结果移植上来后的代码如下:
[mw_shl_code=c,true]printf(":%d\r\n",disk_initialize(0));
printf(":%d\r\n",f_mount(0, &fs));
res = f_open(&fdst,"0:/4.TXT",FA_CREATE_NEW | FA_WRITE);
if ( res == FR_OK )
{
res = f_write(&fdst, textFileBuffer, 13, &bw);
printf("the f_write res is %d\r\n",res);
printf( "\r\n创建文件成功\r\n" );
f_close(&fdst);
}
else if ( res == FR_EXIST )
{
printf( "\r\n文件已经存在\r\n" );
}
res = f_open(&fdst, "0:/4.TXT", FA_OPEN_EXISTING | FA_READ);
br = 1;
a = 0;
for (;;)
{
for ( a=0; a<512; a++ )
buffer[a]=0;
res = f_read( &fdst, buffer, sizeof(buffer), &br );
printf("\r\n %s ", buffer);
if (res || br == 0) break;
}
f_close(&fdst); [/mw_shl_code]
出现的问题现象如下:
在PC机上在SD卡内创建一个txt文档,在串口中能够输出相应的内容。
res = f_open(&fdst,"0:/4.TXT",FA_CREATE_NEW | FA_WRITE); 利用这句函数可以创建一个空的文本文档,但当用
res = f_write(&fdst, textFileBuffer, 13, &bw);往里面写数据时,却返回res=1,即FR_DISK_ERR。
搞不明白是怎么回事了,特来请教各位!!!谢谢~~~
|