⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 多功能MP3代码
💻 C
字号:
#include "stm32f10x_lib.h"
#include"COMM.H"
#include "delay.h" 	   
#include "sys.h"
#include "usart.h" 	    

//显示系统信息
void Sys_Info(void)
{	
	u32 sd_size=0;
	sd_size=SD_GetCapacity();
	Load_StratUp_Gui();	  
	POINT_COLOR=BLACK;

	Show_Str(4,68," 处理器 :STM32F103RBT6",0x01); 
	Show_Str(4,100,"系统内存:20KB",0x01);         
	Show_Str(4,132,"系统闪存:128KB",0x01);   
	Show_Str(4,164,"软件版本:V1.0",0x01);   
	Show_Str(4,196,"SD卡类型:",0x01);   
	Show_Str(4,228,"SD卡容量:    Mb",0x01);
	TFT_ShowNum(76,228,sd_size>>20,4,16,0x01);
	//printf("sd_size:%d\n",sd_size);  
	if(FAT32_Enable)Show_Str(4,260,"文件系统:FAT32",0x01);  
	else Show_Str(4,260,"文件系统:FAT16",0x01);  
	Show_Str(4,292," 设计者 :刘军",0x01);	 
	switch(SD_Type)
	{
		case 0:Show_Str(76,196,"MMC卡",0x01);;break;
		case 1:Show_Str(76,196,"V1类SD卡",0x01);;break;
		case 2:Show_Str(76,196,"V2类SD卡",0x01);;break;
		case 4:Show_Str(76,196,"超高速SD卡",0x01);;break;	 
	}
	while(NPEN==0);//等待按键退出 			    
}  
//主函数																	  		  	  			 		 
int main(void)
{	
	u32 index=0;
	u8 t;
////////////////////////////////////////////////////////////////////////////
//硬件初始化
	Stm32_Clock_Init();//时钟配置   
	delay_init(72);	   //延时配置	 
	uart_init();  //初始化串口 
	TFT_Init();	  //初始化TFTLCD
	init1820();   //初始化温度传感器
	Vs1003_Init();//初始化VS1003的IO口	 
	Mp3Reset();   //复位VS1003
	IIC_Init();	  //IIC总线初始化  	  				 
	rtc_init();   //初始化实时时钟	 
	touch_init(); //触摸屏初始化 
	Alarm_Init(); //闹钟初始化	   
	SD_Init();	  //初始化SD卡
	RGBLED_Init();//RGB彩灯初始化
////////////////////////////////////////////////////////////////////////////	 
//初始化文件系统			 
	while(FAT_Init())
	{
		TFT_ShowString(56,120,"FAT Init Failed!");//SD FAIL
		TFT_ShowString(56,136,"Plesase Check...");//等待插入SD卡    
		delay_ms(100); 
		SD_Init();	
	}
	//得到系统文件失败     
	while(SysInfoGet(0x00)==0)
	{
		TFT_CLEAR(WHITE);//清屏	
		TFT_ShowString(50,120,"SYSTEM File LOST!");//SD FAIL
		TFT_ShowString(56,136,"Plesase Check...");//等待插入SD卡 
		delay_ms(500); 
		while(FAT_Init())
		{	   		
			TFT_ShowString(50,120,"  SD Card LOST!  ");//SD FAIL
			TFT_ShowString(56,136,"Plesase Check...");//SD FAIL
			SD_Init();//重新初始化文件系统
			delay_ms(500);
		}
	}			  	   
	Sys_Info();	  //显示系统信息
////////////////////////////////////////////////////////////////////////////	 
//初始化音效
	INITDSP=FM24C16_ReadOneByte(30);//调用DSP值
	if(INITDSP>4)//未初始化,则初始化
	{
		INITDSP=0;			
		for(t=0;t<31;t++)FM24C16_WriteOneByte(t,0);//全部清空
	}else read_dsp();  //已经初始化过了	读取DSP效果							  	 	 
////////////////////////////////////////////////////////////////////////////	 
//初始化系统结束,主循环开始		
	TFT_CLEAR(WHITE);//清屏
 	while (1)           
  	{  	     	   
		Load_Sys_ICO();//加载系统主界面图标		 
		index=0;
		Select_Menu(0,0,1);//默认选中第一个	   
		Pen_Point.Key_Sta=Key_Up;//释放显示期间的触发		 
		t=0;
		while(1)  //不断显示
		{
			if((Pen_Point.Key_Sta==Key_Down||NPEN)&&Pen_Point.Key_LSta)t=Touch_To_Num(0);//得到按键值	  
			if(PEN)//按键松开了,状态改变(状态机)
			{
				Pen_Point.Key_LSta=1;	 
				Pen_Point.Key_Sta=Key_Up;
			}    						   
			if(t)
			{ 
				Pen_Point.Key_LSta=0;	   
				Select_Menu(0,t-1,1);//选中这个
				if(index!=t-1)Select_Menu(0,index,0);//取消上一次的
				else //此次选择和上次一样,进入该功能
				{
					
					switch(index)
					{
						case 0://音乐模式	    
						 	TFT_CLEAR(WHITE);//清屏  
							Mus_Viewer();//音乐浏览
							Load_Sys_ICO();//重新加载系统菜单 
							Select_Menu(0,index,1);//选中上次选中的
							break; 
						case 1://浏览图片		 
						 	TFT_CLEAR(WHITE);//清屏 
							Pic_Viewer();//图片浏览
							Load_Sys_ICO();//重新加载系统菜单 
							Select_Menu(0,index,1);//选中上次选中的
							break;
						case 4:	  //时间模式	 
							Time_Viewer();
							Load_Sys_ICO();//重新加载系统菜单
							Select_Menu(0,index,1);//选中上次选中的
							break; 
						case 5:	  //设置模式	 				    
							Set_Viewer();
							Load_Sys_ICO();//重新加载系统菜单
							Select_Menu(0,index,1);//选中上次选中的
							break;     
						case 6://浏览TXT文件	   
							TFT_CLEAR(WHITE);//清屏					    
							Txt_Viewer();
							Load_Sys_ICO();//重新加载系统菜单
							Select_Menu(0,index,1);//选中上次选中的
							break; 
						case 8:// 重新启动FAT	  
							RGBLED_Play();
							Load_Sys_ICO();//重新加载系统菜单
							Select_Menu(0,index,1);//选中上次选中的
							break;
							//goto RESTART;
						case 7://收音机模式		  
							Radio_Play();								 
							Load_Sys_ICO();//重新加载系统菜单
							Select_Menu(0,index,1);//选中上次选中的
							break;
						case 2://游戏模式	  
							Game_Play();
							Load_Sys_ICO();//重新加载系统菜单
							Select_Menu(0,index,1);//选中上次选中的
							break;
						case 3://闹钟模式   
							Alarm_Viewer();	
							Load_Sys_ICO();//重新加载系统菜单
							Select_Menu(0,index,1);//选中上次选中的 
							break;							 
					}
				} 
				index=t-1; 									   
				t=0;
			}
			delay_ms(10);	  
		} 	  		  					 
  	}     
}	 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -