void ee_Erase(void)
{
	uint16_t i;
	uint8_t buf[EE_SIZE];
	
	/* 填充缓冲区 */
	for (i = 0; i < EE_SIZE; i++)
	{
		buf[i] = 0xFF;
	}
	
	/* 写EEPROM, 起始地址 = 0,数据长度为 256 */
	if (ee_WriteBytes(buf, 0, EE_SIZE) == 0)
	{
		printf("擦除eeprom出错!\r\n");
		#ifdef LCD_DISPLAY
		//	LCD_Clear(20,110,206,16,BACKGROUND);			//清除屏幕
			LCD_DispEnCh(20,110,"擦除EEPROM出错!",RED);			
		#endif 
		return;
	}
	else
	{
		printf("擦除eeprom成功!\r\n");
		#ifdef LCD_DISPLAY
		//	LCD_Clear(20,110,206,16,BACKGROUND);			//清除屏幕
			LCD_DispEnCh(20,110,"擦除EEPROM成功!",BLUE);			
		#endif 
	}
}
uint8_t EEPROM_AutoTest(void)
{
	uint16_t i;
	uint8_t write_buf[EE_SIZE];
  uint8_t read_buf[EE_SIZE];
  
/*-----------------------------------------------------------------------------------*/  
  if (ee_CheckOk() == 0)
	{		
		return 0;
	}
/*------------------------------------------------------------------------------------*/  
  /* 填充测试缓冲区 */
	for (i = 0; i < EE_SIZE; i++)
	{		
		write_buf[i] = i;
	}
/*------------------------------------------------------------------------------------*/  
  if (ee_WriteBytes(write_buf, 0, EE_SIZE) == 0)
	{
		
		return 0 ;
	}
	else //写成功
	{		

		
	}
  
  /*写完之后需要适当的延时再去读,不然会出错*/
  ee_Delay(0x0FFFFF);
/*-----------------------------------------------------------------------------------*/
  if (ee_ReadBytes(read_buf, 0, EE_SIZE) == 0)
	{		
		return 0;
	}
	else //读成功
	{		
		
	}
/*-----------------------------------------------------------------------------------*/  
  for (i = 0; i < EE_SIZE; i++)
	{
		if(read_buf[i] != read_buf[i])
		{
			return 0;
		}
	}
	
  return 1;


}
/* 
 * ISO 自动整板测试 
 */
void ISO_AutoTest(void)
{
	uint32_t i=0x10ffff;
	uint8_t board_state = 1;
	uint8_t board_test = 0x55;
	
  /* 液晶初始化先于串口,不然会有bug,至于是什么原因我也不知道:( */
  LCD_Init();
	
	USART1_Config();	
	
		/* 初始化sd卡文件系统,因为汉字的字库放在了sd卡里面 */
	Sd_fs_init();	
  
	LCD_Clear(0,0,240,320,WHITE);
	
	LCD_DispStr(50,10,"ISO board auto test ",BLUE);
	
  USART1_Config();			
	
	SysTick_Init();
	
	/* LED 端口初始化 */
	LED_GPIO_Config();	
	
	LED1_ON;
	LED2_ON;
	LED3_ON;
	
	/*按键*/
	Key1_GPIO_Config();
  Key2_GPIO_Config();
	
	
	/* EEPROM测试 */
	LCD_DispEnCh(20,40,"1.EEPROM 自检中",BLUE);
	/*-----------------------------------------------------------------------------------*/  
  if (EEPROM_AutoTest() == 0) //坏
	{
		board_state = 0;	
		LCD_DispEnCh(20,40,"1.EEPROM 检测失败!",RED);
	}
	else
	{
		LCD_DispEnCh(20,40,"1.EEPROM 检测通过!",BLUE);

	}		

	/* FLASH 测试 */
	
	LCD_DispEnCh(20,70,"2.FLASH 自检中",BLUE);
	
	if(FLASH_AutoTest() == 0) //坏
	{
		board_state = 0;
		LCD_DispEnCh(20,70,"2.FLASH 检测失败!",RED);
	}
	else
	{
		LCD_DispEnCh(20,70,"2.FLASH 检测通过!",BLUE);

	}
	
	/* RTC测试 */
	
	LCD_DispEnCh(20,100,"3.RTC 自检中",BLUE);
	
	if(RTC_AutoTest() == 0) //坏
	{
		board_state = 0;
		LCD_DispEnCh(20,100,"3.RTC 检测失败!",RED);
	}
	else
	{
		LCD_DispEnCh(20,100,"3.RTC 检测通过!",BLUE);

	}
	
		/* FM测试 */
	
	LCD_DispEnCh(20,130,"4.FM 自检中",BLUE);
	
	if(RDA5807_FM_AutoTest() == 0) //坏
	{
		board_state = 0;
		LCD_DispEnCh(20,130,"4.FM检测失败!",RED);
	}
	else
	{
		LCD_DispEnCh(20,130,"4.FM检测通过",BLUE);

	}
	/* mp3 sd 喇叭测试 */
	/* 关闭systick定时器 以免影响mp3播放效果*/
	SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;
	
	LCD_DispEnCh(20,160,"5.MP3及喇叭自检中",BLUE);
	
	if(MP3_AutoTest() == 0) //坏
	{
		board_state = 0;
		LCD_DispEnCh(20,160,"5.sd 卡错误!!!            ",RED);
	}
	else
	{
		LCD_DispEnCh(20,160,"5.请确认喇叭是否有声音",BLUE);

	}	
	
		
	if(board_state == 0)// 测试不通过
	{
			LCD_DispEnCh(20,220,"自检测试不通过!!!",RED);
			while(1);
		}
		
	/* 按键测试 */
	LCD_DispEnCh(20,190,"6.请检查按键及led灯 ",BLUE);			

		
	while(i--)
	{
		/* 按键测试 */
		if(	Key_Scan(GPIOA,GPIO_Pin_0) == KEY_ON)
		{	
				key_state =~key_state;
				LED1_TOGGLE;
				LED2_TOGGLE;
				LED3_TOGGLE;
			
			}
		
		if(	Key_Scan(GPIOC,GPIO_Pin_13)== KEY_ON)
		{
				key_state =~key_state;
				LED1_TOGGLE;
				LED2_TOGGLE;
				LED3_TOGGLE;

			}
	}	
	
   
	ee_WriteBytes(&board_test,0,1); //自测成功,写入标记
	Soft_Reset();	

}
/*
 * eeprom AT24C02 读写测试
 */
void Eeprom_Test(void)
{
  uint16_t i;
	uint8_t write_buf[EE_SIZE];
  uint8_t read_buf[EE_SIZE];
  
/*-----------------------------------------------------------------------------------*/  
  if (ee_CheckOk() == 0)
	{
		/* 没有检测到EEPROM */
		printf("没有检测到串行EEPROM!\r\n");
		
		#ifdef LCD_DISPLAY
		//	LCD_Clear(20,128,206,16,BACKGROUND);			//清除屏幕
			LCD_DispEnCh(20,128,"没有检测到串行EEPROM!",RED);			
		#endif 	
		
			
		while (1);	/* 停机 */
	}
/*------------------------------------------------------------------------------------*/  
  /* 填充测试缓冲区 */
	for (i = 0; i < EE_SIZE; i++)
	{		
		write_buf[i] = i;
	}
/*------------------------------------------------------------------------------------*/  
  if (ee_WriteBytes(write_buf, 0, EE_SIZE) == 0)
	{
		printf("写eeprom出错!\r\n");
		#ifdef LCD_DISPLAY
		//	LCD_Clear(20,128,206,16,BACKGROUND);			//清除屏幕
			LCD_DispEnCh(20,128,"写EEPROM出错!",RED);			
		#endif 	
		
		return;
	}
	else
	{		
		printf("写eeprom成功!\r\n");
		#ifdef LCD_DISPLAY
		//	LCD_Clear(20,128,206,16,BACKGROUND);			//清除屏幕
			LCD_DispEnCh(20,128,"写EEPROM成功!",BLUE);			
		#endif 	
		
	}
  
  /*写完之后需要适当的延时再去读,不然会出错*/
  ee_Delay(0x0FFFFF);
/*-----------------------------------------------------------------------------------*/
  if (ee_ReadBytes(read_buf, 0, EE_SIZE) == 0)
	{
		printf("读eeprom出错!\r\n");
		#ifdef LCD_DISPLAY
		//	LCD_Clear(20,146,206,16,BACKGROUND);			//清除屏幕
			LCD_DispEnCh(20,146,"读EEPROM出错!",RED);			
		#endif 
		
		return;
	}
	else
	{		
		printf("读eeprom成功,数据如下:\r\n");
		#ifdef LCD_DISPLAY
		//	LCD_Clear(20,146,206,16,BACKGROUND);			//清除屏幕
			LCD_DispEnCh(20,146,"读EEPROM成功!",BLUE);			
		#endif 
		
	}
/*-----------------------------------------------------------------------------------*/  
  for (i = 0; i < EE_SIZE; i++)
	{
		if(read_buf[i] != read_buf[i])
		{
			printf("0x%02X ", read_buf[i]);
			printf("错误:EEPROM读出与写入的数据不一致");
		#ifdef LCD_DISPLAY
		//	LCD_Clear(20,165,206,16,BACKGROUND);			//清除屏幕
			LCD_DispEnCh(20,165,"错误:EEPROM读出与写入的数据不一致!",RED);			
		#endif 
			return;
		}
    printf(" %02X", read_buf[i]);
		
		if ((i & 15) == 15)
		{
			printf("\r\n");	
		}		
	}
  printf("eeprom读写测试成功\r\n");
		#ifdef LCD_DISPLAY
		//	LCD_Clear(20,165,206,16,BACKGROUND);			//清除屏幕
			LCD_DispEnCh(20,165,"EEPROM读写测试成功!",BLUE);			
		#endif 
  while(1);
}