OpenEdv-开源电子网

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

fatfs读sd卡文件时出现错误 是否与扇区大小设置有关

[复制链接]

3

主题

8

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2015-11-14
在线时间
5 小时
发表于 2015-11-27 21:53:55 | 显示全部楼层 |阅读模式
5金钱
如题   本人开辟了一个4000字节的char型数组cmd用来读取sd卡上的数据并进行操作   每次读取4000字节循环直到读完sd卡上的文件  但是读几次之后   读取到cmd中的数据就会出现一些小错误    代码如下     
   while(1)
{
f_read(&fil,cmd,4096,&br);  
process();
f_lseek(&fil,l);
    if(br<4096) break;  
   }
其中l 是我按一定要求读取设的一个变量      我现在怀疑是扇区大小设置问题   想将_MAX_SS 由512 改为4096   实现扇区对齐读取   不知道这样做对不对  请高手指点一下!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2015-11-14
在线时间
5 小时
 楼主| 发表于 2015-11-28 08:53:17 | 显示全部楼层
之前打错了     我设的是4096字节的char型数组cmd
回复

使用道具 举报

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-4-1
在线时间
17 小时
发表于 2015-11-28 11:49:07 | 显示全部楼层
回复【2楼】liz1991:
---------------------------------
回复【2楼】liz1991:
---------------------------------
回复【2楼】liz1991:
---------------------------------
与扇区大小没关系。你的主函数里怎么没有f_open函数呢
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2015-11-14
在线时间
5 小时
 楼主| 发表于 2015-11-29 09:18:32 | 显示全部楼层
回复【3楼】z904156717:
---------------------------------
我的主函数里有f_open函数
f_open(&fil,"/ceshi.txt",FA_OPEN_EXISTING | FA_READ); 

   while(1)
 {
f_read(&fil,cmd,4096,&br);  
process();
for(i=0;i<4096;i++) cmd=0;
f_lseek(&fil,l);
    if(br==0) break;  
   }
       f_close(&fil);

与扇区大小无关,请问是什么原因   导致cmd数组中读到的数据个别会有错误
回复

使用道具 举报

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-4-1
在线时间
17 小时
发表于 2015-12-1 17:56:19 | 显示全部楼层
回复【4楼】liz1991:
---------------------------------
打开一次,写入一次,关闭一次,这样循环进行写入操作,不需要一直调用f_read函数;另外,试试降低SPI通信速度,如果用的是SPI通信的话。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 21:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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