小学生
最后登录1970-1-1
在线时间 小时
注册时间2020-7-17
|
我用的火哥的例程,移植到自己的板子上没有问题,能读取。现在想读一个39472字节的bin文件,一直报错误读取文件失败(9)The file/directory object is invalid */(文件/目录对象无效),程序如下图。希望大伙给点建议。读取文件我放在Function()函数里,作为其中一个功能,希望按下屏幕,读取数据。
FATFS fs; /* FatFs文件系统对象 */
FIL fnew; /* 文件对象 */
FRESULT res_sd; /* 文件操作结果 */
UINT fnum; /* 文件成功读写数量 */
BYTE ReadBuffer[1024]={0}; /* 读缓冲区 */
show_string(0,0,"即将进行文件读取测试... ");
res_sd = f_open(&fnew, "0:app.bin", FA_OPEN_EXISTING | FA_READ);
if(res_sd == FR_OK)
{
show_string(0,0,"》打开文件成功。 ");
BinSize = fnew.fsize;
SD_Readnum = BinSize/1024;
if(BinSize%1024 != 1024)
{
SD_Readnum++;
}
sprintf((char *)SD_s,"》文件读取成功,读到字节数据:%d",BinSize);
show_string(0,0,SD_s);
for(i=0;i<4;i++)
{
Instrction_APP[4+i] = BinSize >> (8*(3-i));
}
for(j=0;j < SD_Readnum;j++)//更新需要17秒
{
res_sd = f_read(&fnew, ReadBuffer, sizeof(ReadBuffer), &fnum);
for(k=0;k<(fnum/8);k++)
{
for(l=0;l<8;l++)
{
APP_Inf.sendbuffer[l] = ReadBuffer[l+k*8];
}
}
}
if(res_sd==FR_OK)
{
sprintf((char *)SD_s,"》读取得的文件数据为:%s",ReadBuffer);
show_string(0,64,SD_s);
}
else
{
sprintf((char *)SD_s,"!!文件读取失败:(%d)",res_sd);
show_string(0,64,SD_s);
}
}
else
{
show_string(0,0,"!!打开文件失败。 ");
}
/* 不再读写,关闭文件 */
f_close(&fnew);
|
|