资源描述
[键入公司名称]
嵌入式系统作业
武松林、王凤波
嵌入式系统作业
程序代码:
鉴于篇幅,一下只给出Test.c的代码。
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
#include "lcd.h"
#include "rtc.h"
#include "wkup.h"
#include "adc.h"
#include "dma.h"
#include "24cxx.h"
#include "flash.h"
#include "touch.h"
#include "24l01.h"
#include "mmc_sd.h"
#include "remote.h"
#include "ds18b20.h"
#include "mouse.h"
#include "text.h"
#include "fat.h"
#include "fontupd.h"
#include "sysfile.h"
#include "spi.h"
#include "jpegbmp.h"
//'=====================================================
const u8 *COMPILED_DATE=__DATE__;//获得编译日期
const u8 *COMPILED_TIME=__TIME__;//获得编译时间
const u8 *Week[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int main(void)
{ u8 t=0;
u8 i;
u8 key;
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(); //初始化液晶
KEY_Init(); //按键初始化
LED_Init(); //LED初始化
SPI_Flash_Init(); //SPI FLASH使能
//======================================================================================
POINT_COLOR=BLUE;//设置字体为蓝色
if(Font_Init())//字库不存在,则更新字库
{
POINT_COLOR=RED;
LCD_ShowString(60,50,"mini STM32");
LCD_ShowString(60,70,"Font ERROR");
while(1);
}
POINT_COLOR=BLUE;//设置字体为蓝色
//=============================================
Show_Str(60,50,"第十一组演示",16,0);
delay_ms(1000);
Show_Str(60,70,"LCD电子相册",16,0);
delay_ms(1000);
Show_Str(60,90,"2012年05月22日",16,0);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
//延时3秒钟
//=========================================================================
SD_Initialize(); //初始化SD卡
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); //延时
LED0=!LED0; //闪烁led灯
}
//============================================================================
while(SysInfoGet(1))//得到图片文件夹
{
Show_Str(60,130,"图片文件夹未找到,请建立相应文件夹!",16,0);
delay_ms(500); //延时
FAT_Init();
SD_Initialize(); //初始化
LED0=!LED0;
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(GREEN);//清屏
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;
POINT_COLOR=BLACK;
Show_Str(40,239,"人生若只如初见~~~",16,300);
delay_ms(300);
///
POINT_COLOR=BLUE;//设置字体为蓝色
// LCD_ShowString(60,130," - - ");
// LCD_ShowString(60,162," : : ");
// delay_ms(1000);
// delay_ms(1000);
// delay_ms(1000);
while(1)
{
Get_File_Info(Cur_Dir_Cluster,FileInfo,T_JPEG|T_JPG|T_BMP,&index);//得到这张图片的信息
LCD_Clear(BROWN);//清屏,加载下一幅图片的时候,一定清屏
AI_LoadPicFile(FileInfo,0,0,240,240);//显示图片
POINT_COLOR=GREEN;
Show_Str(0,0,FileInfo->F_Name,16,1);//显示图片名字
Show_Str(20,200,"第十一组演示",16,20);
delay_ms(300);
POINT_COLOR=BLUE;
Show_Str(20,220,"简单的电子相册",16,300);
delay_ms(300);
POINT_COLOR=BLACK;
Show_Str(20,239,"人生若只如初见~~~",16,300);
delay_ms(300);
//==============================================================================================
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)LED0=!LED0;
if(time>3000)
{
time=0;
break;
}
}
index++;
if(index>pic_cnt)index=1;//显示第一副,循环
}
}
}
//=========================================================================================================
展开阅读全文