唉。。郁闷死了。。解决了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);
请问军哥,这个现象,是哪里出了问题了?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
图片用的都是你提供的那些图片,没有动过,然后除了一些兼容的代码,别的代码也没改。bmp的在试,唉。。感觉人品真的有问题啊。。T_T
---------------------------------
军哥,还是出问题啊。。。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;//显示第一副,循环
}
}
}
一周热门 更多>