注册 登录
查看: 298|回复: 5

想用单片机读取SD卡保存下来的图像,用f_lseek时应该指向哪?

[复制链接]
回帖奖励 10 金币 回复本帖可获得 10 金币奖励! 每人限 2 次(中奖概率 60%)
发表于 2017-6-20 01:48:56 | 显示全部楼层 |阅读模式
如题,想用f_lseek(&fdst, 0);        和    f_read (&fdst, buff, size, &sizetmp);   完成单片机读取图像,但是不知道指针应该指向哪,是从0开始吗?我看保存的时候保存了长和宽,占用了多大的地址呢读取图像是不是得把这一块地址略过去啊?
回复

使用道具 举报

发表于 2017-6-20 10:08:17 | 显示全部楼层

回帖奖励 +10 金币

是需要跳过宽和高的数据,然后就是一帧帧图像,按顺序读取。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-20 10:15:53 | 显示全部楼层
3ewrlnh9j6 发表于 2017-6-20 10:08
是需要跳过宽和高的数据,然后就是一帧帧图像,按顺序读取。

那宽和高占用了多大地址呢,我现在让指针从0开始读,能正常读取第一帧的图像,但是想读改变指针读取第二帧图像就不行,一直卡死在“从MMC接收数据包函数”里的while (0 == (SDHC_PRSSTAT & SDHC_PRSSTAT_BREN_MASK))语句,试着想办法跳过宽和高的地址,但是不知道具体占了多大空间,所以一直没成功
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-20 11:00:31 | 显示全部楼层
3ewrlnh9j6 发表于 2017-6-20 10:08
是需要跳过宽和高的数据,然后就是一帧帧图像,按顺序读取。

多谢大神指点,现在我已经知道怎么读取了,我采集的图像大小为1548004,我设定的每幅图片占用空间大小为2400,一共采集了644幅图片,因为只在初始化时写入了一次宽和高,所以减去每幅图片占用空间的大小剩下的就是写入宽和高时占用的空间大小,也就是写入宽和高占用了1548004-2400*644=2404,我读取图像时初始指针应该从2405开始读,不知道我这样分析对不对,虽然我现在读的图像正常,但是我从5开始读好像也正常,跟从2405开始读是一样的,一个问题就是读一会之后程序就会卡死在“从MMC接收数据包函数”中的while (0 == (SDHC_PRSSTAT & SDHC_PRSSTAT_BREN_MASK)),不知道为什么会这样
回复 支持 反对

使用道具 举报

发表于 2017-6-20 13:01:29 | 显示全部楼层

回帖奖励 +10 金币

120622960 发表于 2017-6-20 11:00
多谢大神指点,现在我已经知道怎么读取了,我采集的图像大小为1548004,我设定的每幅图片占用空间大小为2 ...

我没研究过读,仅仅用过写操作。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-20 13:09:03 | 显示全部楼层
自己顶一个。
山外哥在吗,我上面那样做对不对,还有就是我在读的时候会将已经保存的图像都请零,只有第一幅图片还正常,后面的都变为全白了,是我有什么误操作造成的吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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