OpenEdv-开源电子网

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

图片文件的读取

[复制链接]

16

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-10-13
在线时间
13 小时
发表于 2013-5-12 14:46:16 | 显示全部楼层 |阅读模式
原子哥您好,我今天读sd卡中的图片文件并将图片文件名的指针赋给指针数组中,可是当我在读取的循环中进行显示的时候没问题,
可是在另外一个函数中调用就不能显示了,这是什么原因?
读取的函数如下:
u8 *f_pic[50];
u16 Get_PicNum(u8 *path)
{
DIR picdir;
FILINFO picfileinfo;
u8 res;
u8 *fn=0;
u16 rval;
u8 i;
res=f_opendir(&picdir,(const TCHAR*)path);
picfileinfo.lfsize=_MAX_LFN*2+1;
picfileinfo.lfname=mymalloc(SRAMIN,picfileinfo.lfsize);
if((picfileinfo.lfname!=NULL)&&(res==FR_OK))
{
while(1)
{
res=f_readdir(&picdir,&picfileinfo);
if((res!=NULL)||picfileinfo.fname[0]==0)break;
fn=(u8*)(*picfileinfo.lfname?picfileinfo.lfname:picfileinfo.fname);
res=f_typetell(fn);
if((res&0xf0)==0x50)
{
f_pic[rval++]=fn;
                                //Show_Str(0,(rval-1)*16,220,16,f_pic[rval-1],16,0);
                        }
                }
         }
return rval;
}
如果我将红色部分加上之后能正常显示文件名,但是将红色部分移植到其他函数中就没法显示了,如下:
void Picture_Play(void)
{
u8 rval;
u8 i;
LCD_Clear(MI_COLOR);
POINT_COLOR=WHITE;
BACK_COLOR=MI_COLOR;
rval=Get_PicNum("0:/PICTURE");
for(i=0;i<rval;i++)
{
Show_Str(0,i*16,220,16,f_pic,16,0);
        } 
while(1);
}
上面的蓝色部分代码没法显示。。。。指针数组*f_pic[50]实在外部定义的,按说Get_PicNum()函数已将图片的名存入f_pic数组中了,为啥在别处调用行不通呢???
谢谢原子哥了。。。
It?never?rains?but?it?pours!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-12 22:50:01 | 显示全部楼层
回复【楼主位】风眠慕天:
---------------------------------
你跟踪进去show_str函数里面,看看传进来的是什么东东.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-20 06:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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