while(res==FR_OK)//死循环执行
{
res=f_read(fftemp,tempbuf,4096,(UINT *)&bread); //读取数据 从fftemp读取4096字节
//到tempbuf,已读字节数存储单元指针为&bread
//正常的话返回值res为0
if(res!=FR_OK)break; //执行错误
SPI_Flash_Write(tempbuf,offx+flashaddr,4096); //从flashaddr开始写入4096个数据
offx+=bread;
fupd_prog(x,y,size,fftemp->fsize,offx); //进度显示
if(bread!=4096)break; //读完了
}
问题:1:res返回值在读取正常(0x00????),失败,读到结束符时分别是什么?
2:书上说判断二进制文件结束要用feof函数,这怎么不用?
3:如果文件数据是4K,是不是要读完第4097+4K才可以判断结束,跳出?
|