OpenEdv-开源电子网

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

求助,SDIO+fatfs读24bmp图片程序出错

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-7-19
在线时间
0 小时
发表于 2013-7-19 17:28:10 | 显示全部楼层 |阅读模式
平台是STM32F103ZET6图片是用windows,自己渲染的全是红色,240*320,用串口打印第三个字节是不是0xff,发现有时会出现bgr
三个出错,下面是程序,自己用fatfs函数读txt是可以读,也可以可以写入,对照后没有错误的
f_open(&f_file,"0:/PHOTOS/red.bmp",FA_READ);//打开文件
f_lseek(&f_file,54); //偏移到数据起始位置
for(j=0;j<320;j++)
{
f_read(&f_file,Photo_Buffer,720,(UINT *)&br); //读出readlen个字节
for(i=0;i<240;i++)
 { 
  if(Photo_Buffer[i*3+2]!=0xff){
        printf("\r\n蓝0x%X,绿0x%X,红0x%X,x:%d,Y:%d,",Photo_Buffer[i*3],Photo_Buffer[i*3+1],Photo_Buffer[i*3+2],i,j);
                 } 
       }
     }
f_close(&f_file);//关闭文件
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-7-19
在线时间
0 小时
 楼主| 发表于 2013-7-19 17:37:02 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-19 19:46:23 | 显示全部楼层
用WINHEX对比下,看看打印的位置的数据和WINHEX读出来的数据对的上不.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-7-19
在线时间
0 小时
 楼主| 发表于 2013-7-22 09:04:28 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
我用ucgui自带的工具把图片文件转换成c,除了54个字节后,后面都是0x00,0x00,0xff,不知问题出在哪
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-7-19
在线时间
0 小时
 楼主| 发表于 2013-7-22 15:42:16 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
求助,我一次性读一万多个字节,就不会出错,打印出来,是没有错码的,一旦用一楼贴的方式读,就会出现乱码
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-22 15:48:54 | 显示全部楼层
那有点奇怪,呵呵,你有JTAG么?
可以跟踪到这个函数,看下Photo_Buffer的内容。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-7-19
在线时间
0 小时
 楼主| 发表于 2013-7-22 17:01:32 | 显示全部楼层
回复【6楼】正点原子:
-------------------------------
谢谢原子哥的回复,我用
for(i=0;i<720;i++)
f_read(&f_file,Photo_Buffer+i,1,(UINT *)&br);
替换原来的一次读720个,就可以正常,是看你的源码,拿过来试一下的,就OK了,但是这样读的话,解码图片就太慢了啊
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-17 18:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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