OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2471|回复: 0

SD卡读二进制文件,f_read函数使用请教

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-2-21
在线时间
2 小时
发表于 2020-3-7 10:20:46 | 显示全部楼层 |阅读模式
请教原子哥及各位大侠://读出数据
//len:读出的长度
//返回值:执行结果
u8 mf_read(u16 len)
{
        u16 i,t;
        u8 res=0;
        u16 tlen=0;
        printf("\r\nRead file data is:\r\n");
        for(i=0;i<len/512;i++)
        {
                res=f_read(file,fatbuf,512,&br);
                if(res)
                {
                        printf("Read Error:%d\r\n",res);
                        break;
                }else
                {
                        tlen+=br;
                        for(t=0;t<br;t++)printf("%c",fatbuf[t]);
                }
        }
        if(len%512)
        {
                res=f_read(file,fatbuf,len%512,&br);
                if(res)        //读数据出错了
                {
                        printf("\r\nRead Error:%d\r\n",res);   
                }else
                {
                        tlen+=br;
                        for(t=0;t<br;t++)printf("%c",fatbuf[t]);
                }         
        }
        if(tlen)printf("\r\nReaded data len:%d\r\n",tlen);//读到的数据长度
        printf("Read data over\r\n");         
        return res;
}
这段程序为什么要分块(512字节/块)读取数据呢?可以一次性读取处理吗?谢谢!



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-21 19:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表