示例#1
0
void fatfs_int(void)
{
	uint8_t timeout =2;
	char buf[120];
	
	sd_card.fatfs_init_flag = FAILED;

	if (sd_card.spi_init_flag == FAILED) return;
	
	printf("\r\n> load fatfs.\r\n\r\n");
	exfuns_init();		//为fatfs相关变量申请内存
		
	printf("mount sd card ...\r\n");
	fr = f_mount(0,fs[0]); 					 	//挂载SD卡 
	if(fr == FR_OK)
	{
		printf("  -- Register work area for the drive 0  \r\n");
		sd_card.Warn.Bit.err_mount = PASSED;
		
		while(exf_getfree("0",&sd_card.totalSize,&sd_card.freeSize))	//得到SD卡的总容量和剩余容量
		{
			delay_ms(1000);
			printf("check sd\r\n");
			delay_ms(1000);
			printf("check sd\r\n");
			delay_ms(1000);
			printf("check sd\r\n");

			timeout--;
			if(timeout == 0) 	break;
		}
		printf("  -- Total Size: %dMB\r\n",sd_card.totalSize>>10);	//显示SD卡总容量 MB
		printf("  -- Free  Size: %dMB\r\n",sd_card.freeSize>>10);		//显示SD卡剩余容量 MB
	}
示例#2
0
/*******Test_Module_TYPE == Test_LED END*******/

///*******Test_Module_TYPE == Test_IMU*******/
void Module_setup(void)
{

	u32 total,free;
	Modules_Power_Control(ALL_Module,1);
   USART_INIT(115200,3,ENABLE);
	//serial port 2 initialize, baud rate 9600 ,enable receive interupt (bluebooth)
	 USART_INIT(9600,2,ENABLE);


	//Initializes the IMU all modules
	IMU_INIT(IMU_ALL_IC);
	GPS_Config();
	LED_Init();
	
	if(SD_Init()!= SD_OK){
		printf("SD Init failed!\r\n");
	}
	else
		printf("SD Init OK!\r\n");
	
   exfuns_init();										 
   f_mount(fs[0],"0:",1); 					 

	if(exf_getfree((u8 *)"0",&total,&free))	
	{
		printf("SD Card Fatfs Error!\r\n");
	}	
	else{
		printf("SD Total Size:   %d  MB\r\n",total>>10);
		printf("SD  Free Size:   %d  MB\r\n",free>>10);
	}
	
} 
示例#3
0
int main(void)
{
	u8 key,fontok=0; 
   	Stm32_Clock_Init(9);	//系统时钟设置
	delay_init(72);			//延时初始化
	uart_init(72,115200); 	//串口1初始化 
	LCD_Init();				//初始化液晶 
	LED_Init();         	//LED初始化	 
	KEY_Init();				//按键初始化	 
	usmart_dev.init(72);	//usmart初始化	
 	USART2_Init(36,115200);	//初始化串口2 
	TP_Init();				//初始化触摸屏
	mem_init(SRAMIN);		//初始化内部内存池	    
 	exfuns_init();			//为fatfs相关变量申请内存  
  	f_mount(0,fs[0]); 		//挂载SD卡 
	key=KEY_Scan(0);  
	if(key==KEY_RIGHT)		//强制校准
	{
		LCD_Clear(WHITE);	//清屏
		TP_Adjust();  		//屏幕校准 
		TP_Save_Adjdata();	  
		LCD_Clear(WHITE);	//清屏
	}
	fontok=font_init();		//检查字库是否OK
	if(fontok||key==KEY_DOWN)//需要更新字库				 
	{
		LCD_Clear(WHITE);		   	//清屏
 		POINT_COLOR=RED;			//设置字体为红色	   	   	  
		LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32");
		while(SD_Initialize())		//检测SD卡
		{
			LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
			delay_ms(200);
			LCD_Fill(60,70,200+60,70+16,WHITE);
			delay_ms(200);		    
		}								 						    
		LCD_ShowString(60,70,200,16,16,"SD Card OK");
		LCD_ShowString(60,90,200,16,16,"Font Updating...");
		key=update_font(20,110,16,0);//从SD卡更新
		while(key)//更新失败		
		{			 		  
			LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
			delay_ms(200);
			LCD_Fill(20,110,200+20,110+16,WHITE);
			delay_ms(200);		       
		} 		  
		LCD_ShowString(60,110,200,16,16,"Font Update Success!");
		delay_ms(1500);	
		LCD_Clear(WHITE);//清屏	       
	}  
	sim900a_test();
}
示例#4
0
void SDCard_Init(void)
{
		u32 total,free;
		u8 res=0;	
		
		W25QXX_Init();				//初始化W25Q128
		my_mem_init(SRAMIN);		//初始化内部内存池 
		my_mem_init(SRAMCCM);		//初始化CCM内存池
		
		while(SD_Init())//检测不到SD卡
		{
				LCD_ShowString(30,150,200,16,16,"SD Card Error!");
				delay_ms(500);					
				LCD_ShowString(30,150,200,16,16,"Please Check! ");
				delay_ms(500);
				LED0=!LED0;//DS0闪烁
		}
		exfuns_init();							//为fatfs相关变量申请内存				 
		f_mount(fs[0],"0:",1); 					//挂载SD卡 
		res=f_mount(fs[1],"1:",1); 				//挂载FLASH.	
		if(res==0X0D)//FLASH磁盘,FAT文件系统错误,重新格式化FLASH
		{
				LCD_ShowString(30,150,200,16,16,"Flash Disk Formatting...");	//格式化FLASH
				res=f_mkfs("1:",1,4096);//格式化FLASH,1,盘符;1,不需要引导区,8个扇区为1个簇
				if(res==0)
				{
						f_setlabel((const TCHAR *)"1:ALIENTEK");	//设置Flash磁盘的名字为:ALIENTEK
						LCD_ShowString(30,150,200,16,16,"Flash Disk Format Finish");	//格式化完成
				}else LCD_ShowString(30,150,200,16,16,"Flash Disk Format Error ");	//格式化失败
				delay_ms(1000);
		}													    
		LCD_Fill(30,150,240,150+16,WHITE);		//清除显示			  
		while(exf_getfree("0",&total,&free))	//得到SD卡的总容量和剩余容量
		{
				LCD_ShowString(30,150,200,16,16,"SD Card Fatfs Error!");
				delay_ms(200);
				LCD_Fill(30,150,240,150+16,WHITE);	//清除显示			  
				delay_ms(200);
				LED0=!LED0;//DS0闪烁
		}													  			    
		POINT_COLOR=BLUE;//设置字体为蓝色	   
		LCD_ShowString(30,150,200,16,16,"FATFS OK!");	 
		LCD_ShowString(30,170,200,16,16,"SD Total Size:     MB");	 
		LCD_ShowString(30,190,200,16,16,"SD  Free Size:     MB"); 	    
		LCD_ShowNum(30+8*14,170,total>>10,5,16);				//显示SD卡总容量 MB
		LCD_ShowNum(30+8*14,190,free>>10,5,16);					//显示SD卡剩余容量 MB		

}
示例#5
0
文件: test.c 项目: uestc-maddog/test
void Sys_Init(void)
{
	u8 key,fontok=0;  
	Stm32_Clock_Init(9);	//系统时钟设置
	delay_init(72);			//延时初始化
	uart_init(72,115200); 	//串口1初始化 
	LCD_Init();				//初始化液晶 
	LED_Init();         	//LED初始化	 
	KEY_Init();				//按键初始化	 	
 	USART2_Init(36,115200);	//初始化串口2 
	mem_init();		        //初始化内部内存池	    
 	exfuns_init();			//为fatfs相关变量申请内存  
    f_mount(fs[0],"0:",1); 	//挂载SD卡  
	key = KEY_Scan(0);  
	fontok = font_init();		//检查字库是否OK
	if(fontok||key == KEY1_PRES)//需要更新字库 (KEY1按下或字库丢失)				 
	{
		LCD_Clear(WHITE);		   	//清屏
 		POINT_COLOR=RED;			//设置字体为红色	   	   	  
		LCD_ShowString(70,50,200,16,16,"GSM  TEST");
		while(SD_Initialize())		//检测SD卡
		{
			LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
			delay_ms(200);
			LCD_Fill(60,70,200+60,70+16,WHITE);
			delay_ms(200);		    
		}								 						    
		LCD_ShowString(60,70,200,16,16,"SD Card OK");
		LCD_ShowString(60,90,200,16,16,"Font Updating...");
		key = update_font(20,110,16);    //更新字库
		while(key)  //更新失败		
		{			 		  
			LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
			delay_ms(200);
			LCD_Fill(20,110,200+20,110+16,WHITE);
			delay_ms(200);		       
		} 		  
		LCD_ShowString(60,110,200,16,16,"Font Update Success!");
		delay_ms(1500);	
		LCD_Clear(WHITE);//清屏	       
	} 
}
示例#6
0
/*******Test_Module_TYPE == Test_GPS END *******/


///*********Test_Module_TYPE == Test_SD**************/
void Module_setup_sd(void)
{
	u32 total,free;
	//open bule power for testing
//	Modules_Power_Control(Zigbee_Power,1);
	 USART_INIT(115200,3,ENABLE); 
//	//open SD power 
	Modules_Power_Control(SD_Power,1);
	   Modules_Power_Control(IMU_Blue_Power,1);	
	 Modules_Power_Control(GPS_Power,1);
	 //Initializes serial port 2
	 USART_INIT(9600,2,ENABLE);
	 //Initializes the IMU all modules
	 IMU_INIT(IMU_ALL_IC);
	GPS_Config();
			printf("Before SDCARD init\r\n");

//	//³õʼ»¯SD¿¨ SD initialize
	
	if(SD_Init()!= SD_OK){
		printf("SD Init failed!\r\n");
	}
	else
		printf("SD Init OK!\r\n");
	
   exfuns_init();							
   f_mount(fs[0],"0:",1); 					

	if(exf_getfree((u8 *)"0",&total,&free))
	{
		printf("SD Card Fatfs Error!\r\n");
	}	
	else{
		printf("SD Total Size:   %d  MB\r\n",total>>10);
		printf("SD  Free Size:   %d  MB\r\n",free>>10);
	}
}
 int main(void)
 { 
	u8 res;
 	DIR picdir;	 		//图片目录
	FILINFO picfileinfo;//文件信息
	u8 *fn;   			//长文件名
	u8 *pname;			//带路径的文件名
	u16 totpicnum; 		//图片文件总数
	u16 curindex;		//图片当前索引
	u8 key;				//键值
	u8 pause=0;			//暂停标记
	u8 t;
	u16 temp;
	u16 *picindextbl;	//图片索引表 		  	    
	delay_init();	    	 //延时函数初始化
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
	uart_init(9600);	 	//串口初始化为9600			 
	LCD_Init();			//初始化液晶 
	LED_Init();         //LED初始化	 
	KEY_Init();			//按键初始化	  													    
	usmart_dev.init(72);//usmart初始化	
 	mem_init();			//初始化内部内存池	
 	exfuns_init();		//为fatfs相关变量申请内存  
  	f_mount(fs[0],"0:",1);	//挂载SD卡 
 	f_mount(fs[1],"1:",1); 	//挂载FLASH.	  
	POINT_COLOR=RED;      
 	while(font_init()) 	//检查字库
	{	    
		LCD_ShowString(60,50,200,16,16,"Font Error!");
		delay_ms(200);				  
		LCD_Fill(60,50,240,66,WHITE);//清除显示	     
		delay_ms(200);				  
	}  	 
 	Show_Str(60,50,200,16,"Mini STM32开发板",16,0);				    	 
	Show_Str(60,70,200,16,"图片显示程序",16,0);				    	 
	Show_Str(60,90,200,16,"KEY0:NEXT KEY1:PREV",16,0);				    	 
	Show_Str(60,110,200,16,"WK_UP:PAUSE",16,0);				    	 
	Show_Str(60,130,200,16,"正点原子@ALIENTEK",16,0);				    	 
	Show_Str(60,150,200,16,"2014年3月14日",16,0);
 	while(f_opendir(&picdir,"0:/PICTURE"))//打开图片文件夹
 	{	    
		Show_Str(60,170,240,16,"PICTURE文件夹错误!",16,0);
		delay_ms(200);				  
		LCD_Fill(60,170,240,186,WHITE);//清除显示	     
		delay_ms(200);				  
	}  
	totpicnum=pic_get_tnum("0:/PICTURE"); //得到总有效文件数
  	while(totpicnum==NULL)//图片文件为0		
 	{	    
		Show_Str(60,170,240,16,"没有图片文件!",16,0);
		delay_ms(200);				  
		LCD_Fill(60,170,240,186,WHITE);//清除显示	     
		delay_ms(200);				  
	}
  	picfileinfo.lfsize=_MAX_LFN*2+1;						//长文件名最大长度
	picfileinfo.lfname=mymalloc(picfileinfo.lfsize);	//为长文件缓存区分配内存
 	pname=mymalloc(picfileinfo.lfsize);				//为带路径的文件名分配内存
 	picindextbl=mymalloc(2*totpicnum);				//申请2*totpicnum个字节的内存,用于存放图片索引
 	while(picfileinfo.lfname==NULL||pname==NULL||picindextbl==NULL)//内存分配出错
 	{	    
		Show_Str(60,170,240,16,"内存分配失败!",16,0);
		delay_ms(200);				  
		LCD_Fill(60,170,240,186,WHITE);//清除显示	     
		delay_ms(200);				  
	}  	
	//记录索引
    res=f_opendir(&picdir,"0:/PICTURE"); //打开目录
	if(res==FR_OK)
	{
		curindex=0;//当前索引为0
		while(1)//全部查询一遍
		{
			temp=picdir.index;								//记录当前index
	        res=f_readdir(&picdir,&picfileinfo);       		//读取目录下的一个文件
	        if(res!=FR_OK||picfileinfo.fname[0]==0)break;	//错误了/到末尾了,退出		  
     		fn=(u8*)(*picfileinfo.lfname?picfileinfo.lfname:picfileinfo.fname);			 
			res=f_typetell(fn);	
			if((res&0XF0)==0X50)//取高四位,看看是不是图片文件	
			{
				picindextbl[curindex]=temp;//记录索引
				curindex++;
			}	    
		} 
	}   
	Show_Str(60,170,240,16,"开始显示...",16,0); 
	delay_ms(1500);
	piclib_init();										//初始化画图	   	   
	curindex=0;											//从0开始显示
   	res=f_opendir(&picdir,(const TCHAR*)"0:/PICTURE"); 	//打开目录
	while(res==FR_OK)//打开成功
	{	
		dir_sdi(&picdir,picindextbl[curindex]);			//改变当前目录索引	   
        res=f_readdir(&picdir,&picfileinfo);       		//读取目录下的一个文件
        if(res!=FR_OK||picfileinfo.fname[0]==0)break;	//错误了/到末尾了,退出
     	fn=(u8*)(*picfileinfo.lfname?picfileinfo.lfname:picfileinfo.fname);			 
		strcpy((char*)pname,"0:/PICTURE/");				//复制路径(目录)
		strcat((char*)pname,(const char*)fn);  			//将文件名接在后面
 		LCD_Clear(BLACK);
 		ai_load_picfile(pname,0,0,lcddev.width,lcddev.height,1);//显示图片    
		Show_Str(2,2,240,16,pname,16,1); 				//显示图片名字
		t=0;
		while(1) 
		{
			key=KEY_Scan(0);		//扫描按键
			if(t>250)key=1;			//模拟一次按下KEY0    
			if((t%20)==0)LED0=!LED0;//LED0闪烁,提示程序正在运行.
			if(key==KEY1_PRES)		//上一张
			{
				if(curindex)curindex--;
				else curindex=totpicnum-1;
				break;
			}else if(key==KEY0_PRES)//下一张
			{
				curindex++;		   	
				if(curindex>=totpicnum)curindex=0;//到末尾的时候,自动从头开始
				break;
			}else if(key==WKUP_PRES)
			{
				pause=!pause;
				LED1=!pause; 	//暂停的时候LED1亮.  
			}
			if(pause==0)t++;
			delay_ms(10); 
		}					    
		res=0;  
	} 											  
	myfree(picfileinfo.lfname);	//释放内存			    
	myfree(pname);				//释放内存			    
	myfree(picindextbl);		//释放内存			    
}
 int main(void)
 { 
	u32 fontcnt;		  
	u8 i,j;
	u8 fontx[2];//gbk码
	u8 key,t;			 
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2 
	delay_init();	    	 //延时函数初始化	  
	uart_init(9600);	 	//串口初始化为9600			 
	LCD_Init();			//初始化液晶 
	LED_Init();         //LED初始化	 													    
	KEY_Init();				//按键初始化	  													    
	usmart_dev.init(72);	//usmart初始化	
 	mem_init();				//初始化内存池	    
 	exfuns_init();			//为fatfs相关变量申请内存  
  f_mount(fs[0],"0:",1); 	//挂载SD卡 
 	f_mount(fs[1],"1:",1); 	//挂载FLASH.
	while(font_init()) 	//检查字库
	{
UPD:    
		LCD_Clear(WHITE);		   	//清屏
 		POINT_COLOR=RED;			//设置字体为红色	   	   	  
		LCD_ShowString(60,50,200,16,16,"mini STM32");
		while(SD_Initialize())		//检测SD卡
		{
			LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
			delay_ms(200);
			LCD_Fill(60,70,200+60,70+16,WHITE);
			delay_ms(200);		    
		}								 						    
		LCD_ShowString(60,70,200,16,16,"SD Card OK");
		LCD_ShowString(60,90,200,16,16,"Font Updating...");
	 	key=update_font(20,110,16);//更新字库
		while(key)//更新失败		
		{			 		  
			LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
			delay_ms(200);
			LCD_Fill(20,110,200+20,110+16,WHITE);
			delay_ms(200);		       
		} 		  
		LCD_ShowString(60,110,200,16,16,"Font Update Success!");
		delay_ms(1500);	
		LCD_Clear(WHITE);//清屏	       
	}  
	POINT_COLOR=RED;       
	Show_Str(60,50,200,16,"Mini STM32开发板",16,0);				    	 
	Show_Str(60,70,200,16,"GBK字库测试程序",16,0);				    	 
	Show_Str(60,90,200,16,"正点原子@ALIENTEK",16,0);				    	 
	Show_Str(60,110,200,16,"2014年1月3日",16,0);
	Show_Str(60,130,200,16,"按KEY0,更新字库",16,0);
 	POINT_COLOR=BLUE;  
	Show_Str(60,150,200,16,"内码高字节:",16,0);				    	 
	Show_Str(60,170,200,16,"内码低字节:",16,0);				    	 
	Show_Str(60,190,200,16,"汉字计数器:",16,0);

	Show_Str(60,220,200,24,"对应汉字为:",24,0); 
	Show_Str(60,244,200,16,"对应汉字(16*16)为:",16,0);			 
	Show_Str(60,260,200,12,"对应汉字(12*12)为:",12,0);			 
	while(1)
	{
		fontcnt=0;
		for(i=0x81;i<0xff;i++)
		{		
			fontx[0]=i;
			LCD_ShowNum(148,150,i,3,16);		//显示内码高字节    
			for(j=0x40;j<0xfe;j++)
			{
				if(j==0x7f)continue;
				fontcnt++;
				LCD_ShowNum(148,170,j,3,16);	//显示内码低字节	 
				LCD_ShowNum(148,190,fontcnt,5,16);//汉字计数显示	 
			 	fontx[1]=j;
				Show_Font(60+132,220,fontx,24,0);	  
				Show_Font(60+144,244,fontx,16,0);	  		 		 
				Show_Font(60+108,260,fontx,12,0);	  		 		 
				t=200;
				while(t--)//延时,同时扫描按键
				{
					delay_ms(1);
					key=KEY_Scan(0);
					if(key==KEY0_PRES)goto UPD;
				}
				LED0=!LED0;
			}   
		}	
	} 
}
示例#9
0
int main(void)
{
    u32 fontcnt;
    u8 i,j;
    u8 fontx[2];//gbk码
    u8 key,t;

    delay_init();	    	 //延时函数初始化
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
    uart_init(115200);	 	//串口初始化为115200
    usmart_dev.init(72);		//初始化USMART
    LED_Init();		  			//初始化与LED连接的硬件接口
    KEY_Init();					//初始化按键
    LCD_Init();			   		//初始化LCD
    W25QXX_Init();				//初始化W25Q128
    my_mem_init(SRAMIN);		//初始化内部内存池
    exfuns_init();				//为fatfs相关变量申请内存
    f_mount(fs[0],"0:",1); 		//挂载SD卡
    f_mount(fs[1],"1:",1); 		//挂载FLASH.
    while(font_init()) 			//检查字库
    {
        LCD_Clear(WHITE);		   	//清屏
        POINT_COLOR=RED;			//设置字体为红色
        LCD_ShowString(30,50,200,16,16,"WarShip STM32");
        while(SD_Init())			//检测SD卡
        {
            LCD_ShowString(30,70,200,16,16,"SD Card Failed!");
            delay_ms(200);
            LCD_Fill(30,70,200+30,70+16,WHITE);
            delay_ms(200);
        }
        LCD_ShowString(30,70,200,16,16,"SD Card OK");
        LCD_ShowString(30,90,200,16,16,"Font Updating...");
        key=update_font(20,110,16,"0:");//更新字库
        while(key)//更新失败
        {
            LCD_ShowString(30,110,200,16,16,"Font Update Failed!");
            delay_ms(200);
            LCD_Fill(20,110,200+20,110+16,WHITE);
            delay_ms(200);
        }
        LCD_ShowString(30,110,200,16,16,"Font Update Success!   ");
        delay_ms(1500);
        LCD_Clear(WHITE);//清屏
    }
    POINT_COLOR = MAGENTA;
    Show_Str(20,20,200,24,"第十一届全国电子",24,0);
    Show_Str(80,50,200,24,"设计大赛",24,0);

    POINT_COLOR = BLUE;
    Show_Str(60,80,200,24,"武昌首义学院",24,0);
    Show_Str(30,130,200,24,"参赛题目课题:",24,0);
    Show_Str(45,160,200,24,"旋转倒立摆",24,0);

    Show_Str(30,210,200,24,"参赛者:李观称",24,0);
    Show_Str(45,240,200,24,"赖丽清,张建",24,0);

    while(1)
    {
        fontcnt=0;
        for(i=0x81; i<0xff; i++)
        {
            fontx[0]=i;
//			LCD_ShowNum(118,150,i,3,16);		//显示内码高字节
            for(j=0x40; j<0xfe; j++)
            {
                if(j==0x7f)continue;
                fontcnt++;
//				LCD_ShowNum(118,170,j,3,16);	//显示内码低字节
//				LCD_ShowNum(118,190,fontcnt,5,16);//汉字计数显示
//			 	fontx[1]=j;
//				Show_Font(30+132,220,fontx,24,0);
//				Show_Font(30+144,244,fontx,16,0);
//				Show_Font(30+108,260,fontx,12,0);
                t=200;
                while(t--)//延时,同时扫描按键
                {
                    delay_ms(1);
                }
                LED0=!LED0;
            }
        }
    }
}
示例#10
0
文件: main.c 项目: lucky-ing/MUSIC
 int main(void)
 {	 
	 u8 num=0,w=0,res=0;
	delay_init();	    	 //延时函数初始化	  
	NVIC_Configuration(); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	uart_init(9600);	 	//串口初始化为9600
 	//LED_Init();			     //LED端口初始化
	//TPAD_Init();		//初始化触摸按键
	//LCD_Init();				//LCD初始化
	//KEY_Init();	 			//按键初始化
	Audiosel_Init();	//初始化音源选择
	//usmart_dev.init(72);//usmart初始化
 	mem_init(SRAMIN);	//初始化内部内存池	
 	VS_Init();	  

 	exfuns_init();					//为fatfs相关变量申请内存  
  f_mount(0,fs[0]); 		 		//挂载SD卡 
 	f_mount(1,fs[1]); 				//挂载FLASH.
	POINT_COLOR=RED;      
	while(1)
	{
		Audiosel_Set(0);	//MP3通道
 		//LED1=0; 	  
		//Show_Str(60,210,200,16,"存储器测试...",16,0);
		printf("存储器测试...\n");
		VS_Ram_Test();	    
		//Show_Str(60,210,200,16,"正弦波测试...",16,0);
		printf("正弦波测试...\n");		
 		VS_Sine_Test();	   
		//Show_Str(60,210,200,16,"<<WAV录音机>>",16,0); 		
    printf("<<WAV录音机>>\n");			
		//LED1=1;
		printf("输入a以进入音乐播放,输入b进入录音机\n");
		while(1)
		{
			if(USART_RX_STA&0x8000)
			{	
				num=USART_RX_STA&0x3fff;
				
				for(w=0;w<num;w++)
				{
					res=USART_RX_BUF[w];
				}
				USART_RX_STA=0;
				switch(res)
				{
					case MUSIC:Mp3Play();break;
					case RECODER:RecoderPlay();break;
					case DELETE:DeleteRecorder();break;
					default:             break;
				}
				printf("a:音乐\nb:录音机\nl:删除\n ");
			}
}
		
		
		//RecoderPlay();
		
		
		printf("竟然出错了。。。\n");
		while(1);
	}    					  
}
示例#11
0
 int main(void)
 {	 
	//定义全局变量
	u8 key,mode;
	u16 t=0;			 
	u8 tmp_buf[33];	

	 
	//函数初始化
	delay_init();	    	 //延时函数初始化	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	uart_init(115200);	 	//串口初始化为115200
 	usmart_dev.init(72);		//初始化USMART	
	LED_Init();		  			//初始化与LED连接的硬件接口
	KEY_Init();					//初始化按键
	
	NRF24L01_Init();    		//初始化NRF24L01 
	 
	W25QXX_Init();				//初始化W25Q128
	my_mem_init(SRAMIN);		//初始化内部内存池
	LCD_Init();			   		//初始化LCD 
	exfuns_init();				//为fatfs相关变量申请内存  
 	f_mount(fs[0],"0:",1); 		//挂载SD卡 
 	f_mount(fs[1],"1:",1); 		//挂载FLASH.	 
 
	//检查中文字库
	while(font_init()) 			//检查字库
	{
		LCD_Clear(WHITE);		   	//清屏
 		POINT_COLOR=RED;			//设置字体为红色	   	   	  
		LCD_ShowString(30,50,200,16,16,"WarShip STM32");
		while(SD_Init())			//检测SD卡
		{
			LCD_ShowString(30,70,200,16,16,"SD Card Failed!");
			delay_ms(200);
			LCD_Fill(30,70,200+30,70+16,WHITE);
			delay_ms(200);		    
		}								 						    
		LCD_ShowString(30,70,200,16,16,"SD Card OK");
		LCD_ShowString(30,90,200,16,16,"Font Updating...");
		key=update_font(20,110,16,"0:");//更新字库
		while(key)//更新失败		
		{			 		  
			LCD_ShowString(30,110,200,16,16,"Font Update Failed!");
			delay_ms(200);
			LCD_Fill(20,110,200+20,110+16,WHITE);
			delay_ms(200);		       
		} 		  
		LCD_ShowString(30,110,200,16,16,"Font Update Success!   ");
		delay_ms(1500);	
		LCD_Clear(WHITE);//清屏	       
	}  
	
	//检查无线通信
	while(NRF24L01_Check())
	{
		LCD_ShowString(30,130,200,16,16,"NRF24L01 Error");
		delay_ms(200);
		LCD_Fill(30,130,239,130+16,WHITE);
 		delay_ms(200);
	}

	//初始化界面
	POINT_COLOR = MAGENTA; 
	Show_Str(20,20,200,24,"第十一届全国电子",24,0);
	Show_Str(80,50,200,24,"设计大赛",24,0);	
	
 	while(1)
	{	
		//按键扫描
		key=KEY_Scan(0);
		
		if(key!=0)
		{
			LCD_Clear(WHITE);
			Show_Str(60,20,200,24,"旋转倒立摆",24,0);
			Show_Str(20,50,200,24,"任务1:",24,0);
			Show_Str(20,80,200,24,"任务2:",24,0);
			Show_Str(20,110,200,24,"任务3:",24,0);
			Show_Str(20,140,200,24,"任务4:",24,0);
			Show_Str(20,170,200,24,"任务5:",24,0);
			Show_Str(20,200,200,24,"任务6:",24,0);
			
			while(1)
			{
				key=KEY_Scan(0);
				//WKUP_PRES  功能:返回主界面
				if(key==WKUP_PRES)
				{
					MUSE_TASK();
				}
				
				//KEY1_PRES 功能:执行任务1
				else if(key==KEY0_PRES)
				{
					KEY0_TASK();
				}
//				//KEY1_PRES 功能:执行任务1
//				else if(key==KEY1_PRES)
//				{
//					mode=1;
//					break;
//				}
//				//KEY2_PRES 功能:执行任务2
//				else if(key==KEY2_PRES)
//				{
//					mode=1;
//					break;
//				}
//				//KEY3_PRES 功能:执行任务3
//				else if(key==KEY3_PRES)
//				{
//					mode=1;
//					break;
//				}
//				//KEY4_PRES 功能:执行任务4
//				else if(key==KEY4_PRES)
//				{
//					mode=1;
//					break;
//				}
//				//KEY5_PRES 功能:执行任务5
//				else if(key==KEY5_PRES)
//				{
//					mode=1;
//					break;
//				}
//				//KEY6_PRES 功能:执行任务6
//				else if(key==KEY6_PRES)
//				{
//					mode=1;
//					break;
//				}
//				//KEY7_PRES 功能:执行任务7
//				else if(key==KEY7_PRES)
//				{
//					mode=1;
//					break;
//				}
//				//KEY8_PRES 功能:执行任务8
//				else if(key==KEY8_PRES)
//				{
//					mode=1;
//					break;
//				}
//				
			}
		}
		
		t++;
		if(t==100)
			//LCD_ShowString(10,150,230,16,16,"KEY0:RX_Mode  KEY1:TX_Mode"); //闪烁显示提示信息
			Show_Str(10,150,230,24,"按任意键进入主菜单",24,0);
 		if(t==200)
		{	
			LCD_Fill(10,150,240,150+50,WHITE);
			t=0; 
		}
		delay_ms(5);
	} 
}	
示例#12
0
void file_system_init(void) {
    exfuns_init();
    f_mount(0,fs[0]);
}