OpenEdv-开源电子网

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

图片显示移植问题

[复制链接]

9

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2015-10-16
在线时间
49 小时
发表于 2016-3-2 17:10:54 | 显示全部楼层 |阅读模式
1金钱
移植原子哥的程序
液晶和sd卡都没问题了
[mw_shl_code=c,true]    res=f_opendir(&picdir,"0:/PICTURE"); //打开目录
        if(res==FR_OK)
        {
                curindex=0;//当前索引为0
                while(1)//全部查询一遍
                {
                        temp=picdir.index;                                                                //记录当前index
                res=f_readdir(&picdir,&picfileinfo);                       //读取目录下的一个文件
                if(res!=FR_OK||picfileinfo.fname[0]==0)break;        //错误了/到末尾了,退出                  
                     fn=(u8*)(*picfileinfo.lfname?picfileinfo.lfname:picfileinfo.fname);                         
                        res=f_typetell(fn);       
                        if((res&0XF0)==0X50)//取高四位,看看是不是图片文件       
                        {
                                picindextbl[curindex]=temp;//记录索引
                                curindex++;
                        }     
}
        }   
        Show_Str(60,150,240,16,"开始显示...",16,0);
        delay_ms(1500);
        piclib_init();                                                                                //初始化画图                     
        curindex=0;                                                                                        //从0开始显示
        res=f_opendir(&picdir,(const TCHAR*)"0:/PICTURE");         //打开目录
        while(res==FR_OK)//打开成功
        {       
                dir_sdi(&picdir,picindextbl[curindex]);                        //改变当前目录索引          
        res=f_readdir(&picdir,&picfileinfo);                       //读取目录下的一个文件
        if(res!=FR_OK||picfileinfo.fname[0]==0)break;        //错误了/到末尾了,退出
             fn=(u8*)(*picfileinfo.lfname?picfileinfo.lfname:picfileinfo.fname);                         
                strcpy((char*)pname,"0:/PICTURE/");                                //复制路径(目录)
                strcat((char*)pname,(const char*)fn);                          //将文件名接在后面
                LCD_Clear(BLACK);
                ai_load_picfile(pname,0,0,lcddev.width,lcddev.height,1);//显示图片   
                Show_Str(2,2,240,16,pname,16,1);                                 //显示图片名字
                t=0;
                while(1)
已经可以显示图片的文件名了,然后液晶是黑屏状态。
然后仔细分析了一下显示程序        ai_load_picfile(pname,0,0,lcddev.width,lcddev.height,1);
后来发现        res=jpeg_mallocall(); res得出来的值是17,不是0,所以无法执行解码程序
最后发现是申请内存失败,实在是找不出原因了。
原子哥麻烦在分析分析,怎么解决这个问题。


QQ图片20160302170336.png

最佳答案

查看完整内容[请看2#楼]

内存不够用。。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-2 17:10:55 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-2 20:25:41 | 显示全部楼层
说明你内存不够啊,你用的什么单片机啊
回复

使用道具 举报

9

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2015-10-16
在线时间
49 小时
 楼主| 发表于 2016-3-3 08:23:02 | 显示全部楼层
正点原子 发表于 2016-3-2 20:25
说明你内存不够啊,你用的什么单片机啊

stm32f103c8t6
回复

使用道具 举报

9

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2015-10-16
在线时间
49 小时
 楼主| 发表于 2016-3-3 08:24:00 | 显示全部楼层

回复

使用道具 举报

9

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2015-10-16
在线时间
49 小时
 楼主| 发表于 2016-3-3 08:25:16 | 显示全部楼层
QQ图片20160303082456.png
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 10:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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