图片显示实验中未看到图的问题

2019-10-14 21:15发布

唉。。郁闷死了。。解决了flash,解决了汉字显示。。继续折腾图片显示时,发现将jpegdecode.c    sysfile.c都加进工程里,然后文件图片啥的都放进SD卡的根目录了(这个没有问题,在min STM32板子验证过)。但是在我自己做的这个毕设的板子上却发现现象:


依次显示
        Show_Str(60,50,"Mini STM32开发板",16,0);      
Show_Str(60,70,"图片显示 程序",16,0);       Show_Str(60,90,"正点原子@ALIENTEK",16,0);       Show_Str(60,110,"2011年1月2日",16,0);  
Show_Str(60,130,"开始显示...",16,0); 


然后按照正常情况是现在应该开始显示图片了。可是就一直显示白屏,轮流的显示白屏,不过在白屏上面还是显示了图片的名字,比如1.jpg  2.jpg  3.jpg..........就是所有运行除了没看到图片之外都是正常的
中间是跳过了:

while(FAT_Init())//FAT 错误 { Show_Str(60,130,"文件系统错误!",16,0);   i= SD_Initialize(); if(i)Show_Str(60,150,"SD卡错误!",16,0);//SD卡初始化失败   delay_ms(500); LCD_Fill(60,130,240,170,WHITE);//清除显示   delay_ms(500); SYS_LED=!SYS_LED;    }     while(SysInfoGet(1))//得到图片文件夹   { Show_Str(60,130,"图片文件夹未找到!",16,0);   delay_ms(500);   FAT_Init(); SD_Initialize(); SYS_LED=!SYS_LED; LCD_Fill(60,130,240,170,WHITE);//清除显示   delay_ms(500);  请问军哥,这个现象,是哪里出了问题了?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
正点原子
1楼-- · 2019-10-14 23:42
 精彩回答 2  元偷偷看……
liuliuzelin
2楼-- · 2019-10-15 04:38
回复【2楼】正点原子:
---------------------------------
图片用的都是你提供的那些图片,没有动过,然后除了一些兼容的代码,别的代码也没改。bmp的在试,唉。。感觉人品真的有问题啊。。T_T
正点原子
3楼-- · 2019-10-15 09:52
我提供的图片不会有问题了,找找其他原因吧
liuliuzelin
4楼-- · 2019-10-15 14:32
嗯。知道。军哥。我在努力看代码。。。嘿嘿
liuliuzelin
5楼-- · 2019-10-15 17:17
回复【4楼】正点原子:

---------------------------------
军哥,还是出问题啊。。。BMP也出不来。。。从“开始显示”开始,然后清屏,接着应该是显示图片,图片名字。下一图片的。。。。但是就出来文件的名字,却没有图片。。 编译也没有出问题。
 int main(void)
{  
    u8 i;   
    FileInfoStruct *FileInfo;      
    u16 pic_cnt=0;//当前目录下图片文件的个数
    u16 index=0;  //当前选择的文件编号    
    u16 time=0;                 

    Stm32_Clock_Init(9);//系统时钟设置
    delay_init(72); //延时初始化
    uart_init(72,9600); //串口1初始化     
    LCD_Init(); //初始化液晶   
    LED_Init();         //LED初始化
    SPI_Flash_Init();   //SPI FLASH使能


    if(Font_Init())//字库不存在,则更新字库
    {  
        OINT_COLOR=RED;      
        LCD_ShowString(60,50,"Mini STM32");
        LCD_ShowString(60,70,"Font ERROR"); 
        while(1);       
    }     
    OINT_COLOR=RED;      
    Show_Str(60,50,"Mini STM32开发板",16,0);       
    Show_Str(60,70,"图片显示 程序",16,0);       
    Show_Str(60,90,"正点原子@ALIENTEK",16,0);       
    Show_Str(60,110,"2011年1月2日",16,0);  
    SD_Initialize();
    while(FAT_Init())//FAT 错误
    {
        Show_Str(60,130,"文件系统错误!",16,0);  
        i= SD_Initialize();
        if(i)Show_Str(60,150,"SD卡错误!",16,0);//SD卡初始化失败    
        delay_ms(500);
        LCD_Fill(60,130,240,170,WHITE);//清除显示   
        delay_ms(500);
        SYS_LED=!SYS_LED;    
    }      
    while(SysInfoGet(1))//得到图片文件夹  
    {
        Show_Str(60,130,"图片文件夹未找到!",16,0);  
        delay_ms(500);  
        FAT_Init();
        SD_Initialize();
        SYS_LED=!SYS_LED;
        LCD_Fill(60,130,240,170,WHITE);//清除显示   
        delay_ms(500); 
    }
    Show_Str(60,130,"开始显示...",16,0); 
    delay_ms(1000);
    Cur_Dir_Cluster=PICCLUSTER;
    while(1)
    {       
        pic_cnt=0;  
        Get_File_Info(Cur_Dir_Cluster,FileInfo,T_JPEG|T_JPG|T_BMP,&pic_cnt);//获取当前文件夹下面的目标文件个数      
        if(pic_cnt==0)//没有图片文件
        {
            LCD_Clear(WHITE);//清屏    
            while(1)
            {   
                if(time%2==0)Show_Str(32,150,"没有图片,请先COPY图片到SD卡的PICTURE文件夹,然后后重启!",16,0);  
                else LCD_Clear(WHITE);
                time++;
                delay_ms(300);
            }
        }    
        FileInfo=&F_Info[0];//开辟暂存空间.
        index=1;
        while(1)
        {
            Get_File_Info(Cur_Dir_Cluster,FileInfo,T_JPEG|T_JPG|T_BMP,&index);//得到这张图片的信息  
            LCD_Clear(WHITE);//清屏,加载下一幅图片的时候,一定清屏
            AI_LoadPicFile(FileInfo,0,0,240,320);//显示图片          
             OINT_COLOR=RED;      
            Show_Str(0,0,FileInfo->F_Name,16,1);//显示图片名字
            while(1)//延时3s
            {
            // key=KEY_Scan();
            // if(key==1)break;//下一张
            // else if(key==2)//上一张
            // {
            // if(index>1)index-=2;
            // else index=pic_cnt-1;   //没有按键,所以屏蔽掉这段代买
            // break;
            // }
            delay_ms(1);
            time++;
            if(time%100==0)SYS_LED=!SYS_LED;
            if(time>3000)
            {
                time=0;
                break;
            }
           }
        index++;
        if(index>pic_cnt)index=1;//显示第一副,循环       
        }
    }         
}


正点原子
6楼-- · 2019-10-15 21:17
 精彩回答 2  元偷偷看……

一周热门 更多>