OpenEdv-开源电子网

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

STM32 通过SDIO fatfs读取BMP图片,出现的数据错误!

[复制链接]

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2015-5-14
在线时间
46 小时
发表于 2016-5-3 17:58:30 | 显示全部楼层 |阅读模式
5金钱
res=f_read(&sd1_file,buffer,sizeof(buffer),&br1);

BYTE buffer[510];时读取的数据没有任何错误,每次读取510个数据。

BYTE buffer[2040];时,我通过debug进去f_read(),可以看到,第一次读取了458个bytes(不知道为什么?),继续步进的话一次性读取了1536个bytes.

一共是1994个。

结果这次读取的1536个数据,应该是覆盖了前面的458的最后两个bytes.所以1992和1993的位置全部变成0了。

最后一次读取读满了2040个数据。

整个流程就是这样。

问题1:为什么第一次会读取458个?然后读取1536(3个扇区),最后读取46个bytes.
问题2:读取的1536个bytes覆盖了前面的458个的最后两个bytes

fatfs移植的是0.09版本。
SDIO的驱动使用的是官方的版本V5.0.0

11.png
22.png
33.png
44.png
55.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2015-5-14
在线时间
46 小时
 楼主| 发表于 2016-5-3 21:13:30 | 显示全部楼层
回复

使用道具 举报

28

主题

303

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2014-8-14
在线时间
67 小时
发表于 2016-5-3 22:23:47 | 显示全部楼层
mark  标记一下  坐等大神
这个世界上还有很多很多的人,但你不认识他们,他们也不属于你的世界。这个世界上还有很多好吃的好玩的好看的东西,可真正属于你的世界其实是很小的,只是你去过的地方吃过的东西和见过的落日,还有会在乎你死活的朋友。”——《龙族》
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-5-4 21:23:45 | 显示全部楼层
大数组是局部变量?放全局!!
回复

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2015-5-14
在线时间
46 小时
 楼主| 发表于 2016-5-5 10:32:03 | 显示全部楼层
正点原子 发表于 2016-5-4 21:23
大数组是局部变量?放全局!!

就是放的全局变量
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-5-7 23:12:36 | 显示全部楼层
jinghong21 发表于 2016-5-5 10:32
就是放的全局变量

检查下读取完毕后的br1的值
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 01:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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