Exemple #1
0
void oled_update_temp()
{
	#define OFFSET1	16
	short temp = get_temperature();
	
	OLED_ShowNum(OFFSET1, 0, temp/10, 2, 32);
	OLED_ShowChar(OFFSET1+8*2, 0, '.', 32, 1);
	OLED_ShowNum(OFFSET1+8*3, 0, temp%10, 1, 32);
	
	OLED_Refresh_Gram();
}
Exemple #2
0
void Loop_50Hz()	//20ms执行一次
{
	time++;
	if(time >= 50)
	{
		time = 0;
		Time++;
		
		OLED_ShowNum(0,0,Time/3600,2,16,0);
//		OLED_ShowString(16,0,":");
		OLED_ShowNum(24,0,Time%3600/60,2,16,0);
//		OLED_ShowString(40,0,":");
		OLED_ShowNum(48,0,Time%60,2,16,0);
	}
}
Exemple #3
0
void menu_Showsen()
{	
		OLED_ShowNum(16,0,sen.high,3,16,1);
		OLED_ShowFloat(16,2,sen.angle.pitch,3);
		OLED_ShowFloat(16,4,sen.angle.roll,3);
		OLED_ShowFloat(16,6,sen.angle.yaw,3);
}
void mode3_Display(u8 angle)
{
	OLED_ShowStr(0,4,"                ",2);
	OLED_ShowStr(0,4,"angle:       du",2);
	OLED_ShowNum(angle);
	
}
void HeartRateCal(void)
{
  if(InitFlag == 1)
  {
    MAX = Dataout;
    MIN = Dataout;

    heartrate = 0;
    beats = 0;
    counter = 0;
    duration = 0;
    InitFlag = 0;

  }else  if(Dataout > MAX)
  {
    MAX = Dataout;
  }
  else if(Dataout < MIN)
  {
    MIN = Dataout;
  }
  THR =(((long)(3 * MAX + MIN))>>2);

  counter++;
  duration++;

  if (Dataout > THR)                                  // ãÐÖµ¼ì²â
  {
    counter = 0;
  }
  if (counter == 500/8)                                      // ÑÓʱfs/8Ïû¶¶
  {
      beats = 0;
      heartrate = (30000/duration);
      OLED_ShowNum(32,0,heartrate,16);
      duration = 0;
  }
  if(duration > 500*3)
  {
    heartrate = 0;
    OLED_ShowNum(32,0,heartrate,16);
    duration = 0;
    MIN = Dataout;
    MAX = Dataout;
  }

}
Exemple #6
0
void osd_test(void)
{	u8 t;
		OLED_Init();			//3?¨º??¡¥OLED  
		OLED_Clear()  	; 
	
		t=' ';
		OLED_ShowCHinese(0,0,0);//?D
				OLED_ShowCHinese(18,0,1);//?¡ã
		OLED_ShowCHinese(36,0,2);//?¡ã
		OLED_ShowCHinese(54,0,3);//¦Ì?
		OLED_ShowCHinese(72,0,4);//¡Á¨®
		OLED_ShowCHinese(90,0,5);//??
		OLED_ShowCHinese(108,0,6);//??
	while(1) 
	{		
		OLED_Clear();
		OLED_ShowCHinese(0,0,0);//?D
		OLED_ShowCHinese(18,0,1);//?¡ã
		OLED_ShowCHinese(36,0,2);//?¡ã
		OLED_ShowCHinese(54,0,3);//¦Ì?
		OLED_ShowCHinese(72,0,4);//¡Á¨®
		OLED_ShowCHinese(90,0,5);//??
		OLED_ShowCHinese(108,0,6);//??
		OLED_ShowString(6,3,"0.96' OLED TEST",16);

				OLED_ShowString(6,4,"0.96' OLED TEST",16);
		OLED_ShowString(0,5,"0.96' OLED TEST",16);

		OLED_ShowString(0,6,"0.96' OLED TEST",16);
		OLED_ShowString(1,7,"0.96' OLED TEST",16);

		OLED_ShowString(6,3,"0.96' OLED TEST",16);

		//OLED_ShowString(8,2,"ZHONGJINGYUAN");  
	 //	OLED_ShowString(20,4,"2014/05/01");  
		OLED_ShowString(0,6,"ASCII:",16);  
		OLED_ShowString(63,6,"CODE:",16);  
		OLED_ShowChar(48,6,t,16);//??¨º?ASCII¡Á?¡¤?	   
		t++;
		if(t>'~')t=' ';
		OLED_ShowNum(103,6,t,3,16);//??¨º?ASCII¡Á?¡¤?¦Ì????¦Ì 	
		rt_thread_delay(1000*3);


		OLED_DrawBMP(0,0,128,8,BMP1);  //¨ª?????¨º?(¨ª?????¨º?¨¦¡Â¨®?¡ê?¨¦¨²3¨¦¦Ì?¡Á?¡À¨ª??¡ä¨®¡ê??¨¢??¨®????¨¤????¡ê?FLASH????8K¨°???¨¦¡Â¨®?)
		rt_thread_delay(1000*3);

		OLED_DrawBMP(0,0,128,8,BMP1);
		rt_thread_delay(1000*3);


	}	
	
}
void receive_handle( uint8_t* data)
{
	uint8_t i = 0;
	uint8_t re_data[20];
	uint8_t command = data[0];
	uint8_t data_len = data[1]&GET_DATA_LEN;
	uint8_t last_byte = data[data_len+2];
	if(last_byte ==0x55)  //表示全部字节接收完成,否则丢弃
	{
		for(i=0;i<data_len;i++)
			re_data[i] = data[i+2];
		
		if(command==SET_DEVICE_TIME)
		{ 
			timer.w_year = re_data[0]<<8 | re_data[1];
			timer.w_month = re_data[2];
			timer.w_date = re_data[3];
			timer.hour = re_data[4];
			timer.min = re_data[5];
			timer.sec = re_data[6];
			
			OLED_ShowNum(0,32,(uint32_t)timer.w_year,4,16);
			OLED_ShowNum(40,32,(uint32_t)timer.w_month,2,16);
			OLED_ShowNum(64,32,(uint32_t)timer.w_date,2,16);
			OLED_ShowNum(88,32,(uint32_t)timer.hour,2,16);
			OLED_ShowNum(112,32,(uint32_t)timer.min,2,16);
			OLED_Refresh_Gram();

		}
		if(command==BOND_COMMAND)
		{
			for(i=0;i<data_len;i++)
			{
				user_profile.boundphone[i] = re_data[i];	
			}
			user_profile.boundphone[PHONE_LEN -1] = 0 ;
			printf("boundphone:%s\r\n",(char*)user_profile.boundphone);		
			
		}
	}
}
Exemple #8
0
void menu_Run()
{
	switch(menu_Mode)
	{
		case show_time_1:
			OLED_Clear(0,0,127,7);
			OLED_ShowString(16,0,":");
			OLED_ShowString(40,0,":");
		  menu_Showtime(); 
		  menu_Mode = show_time;
		break;
		case show_time : 
			menu_Showtime(); 		
		break;
		case show_sen_1:
			OLED_Clear(0,0,127,7);
			OLED_ShowString(16+24,0,"cm");	
			OLED_ShowString(0,0,"H:");
			OLED_ShowString(0,2,"P:");
			OLED_ShowString(0,4,"R:");
			OLED_ShowString(0,6,"Y:");
		  menu_Showsen();
			menu_Mode = show_sen;
		break;
		case show_sen : 			
			menu_Showsen();
		break;
		case set_sen_1:
			OLED_ShowString(0,0,"S_Height:");
			OLED_ShowString(0,2,"P_offset:");
			OLED_ShowString(0,4,"R_offset:");
			OLED_ShowString(0,6,"Y_offset:");
			OLED_ShowNum(72,0,Expect.hight,3,18,0);
			OLED_ShowFloat(72,2,sen.angle_test_offset.pitch - 10.00f,2);
		  OLED_ShowFloat(72,4,sen.angle_test_offset.roll - 10.00f,2);
		  OLED_ShowFloat(72,6,sen.angle_test_offset.yaw - 10.00f,2);
			OLED_ShowChar(120,0,'S');
			menu_Mode = set_sen;
		break;
		case set_sen:
			menu_Setsen();
		menu_Mode = show_time_1;
		break;
		default:
		break;
	}		
}
Exemple #9
0
void menu_Showtime()
{	
		OLED_ShowNum(0,0,Time/3600,2,16,0);
//		OLED_ShowString(16,0,":");
		OLED_ShowNum(24,0,Time%3600/60,2,16,0);
//		OLED_ShowString(40,0,":");
		OLED_ShowNum(48,0,Time%60,2,16,0);
	
			OLED_ShowNum(0,2,img.CerPtx,3,16,1);
			OLED_ShowNum(56,2,img.CerPty,3,16,1);			
			OLED_ShowNum(0,4,img.CerR,5,16,1);
			
			
			OLED_ShowNum(60,4,img.rate,5,16,1);
}
Exemple #10
0
void oled_update_step_count(void)
{
	static bool flag = false;
	OLED_Clear();
	if(flag)
	{	
		OLED_ShowImg(0, 0, PEDO_IMAGE_1, 1);
		flag = false;
	}
	else
	{
		OLED_ShowImg(0, 0, PEDO_IMAGE_2, 1);
		flag = true;
	}
	OLED_ShowNum(7, 0, get_the_step_count(), 6, 32);
	OLED_Refresh_Gram();
}
Exemple #11
0
void oled_test(void)
{
   //Reset_IC();                    
	Init_IC();                      
	Clear_Screen();
	All_Screen();					 
	

	OLED_Clear();
	OLED_ShowNum(0, 0, 2567890134, 10, 12);
	OLED_ShowString(0, 12, "abcdefghijk");
	
	while(1)
	{       
		OLED_Refresh_Gram();
		nrf_delay_ms(1500);
		Clear_Screen();
	}
}
Exemple #12
0
void oled_default_mode()
{
	#define OFFSET	0
	static bool flag = false;
	calendar temp_time = get_standard_time();
	
	OLED_ShowNum(OFFSET, 0, temp_time.hour, 2, 32);
	if(temp_time.hour < 10) 	OLED_ShowNum(OFFSET, 0, 0, 1, 32);
	OLED_ShowChar(OFFSET+8*2, 0, ':', 32, 1);
	OLED_ShowNum(OFFSET+8*3, 0, temp_time.minute, 2, 32);
	if(temp_time.minute < 10) 	OLED_ShowNum(OFFSET+8*3, 0, 0, 1, 32);
	OLED_ShowChar(OFFSET+8*5, 0, ':', 32, 1);
	OLED_ShowNum(OFFSET+8*6, 0, temp_time.second, 2, 32);
	if(temp_time.second < 10) 	OLED_ShowNum(OFFSET+8*6, 0, 0, 1, 32);
	
	
	if(get_time_mode() == MINUTE_MODE)
	{
		if(flag)
		{
			OLED_ShowChar(OFFSET+8*5, 0, ' ', 32, 1);
			flag = false;
		}
		else
		{			
			OLED_ShowChar(OFFSET+8*5, 0, ':', 32, 1);
			flag = true;
		}
	}
	if(get_time_mode() == HOUR_MODE)
	{
		if(flag)
		{
			OLED_ShowChar(OFFSET+8*2, 0, ' ', 32, 1);
			flag = false;
		}
		else
		{
			OLED_ShowChar(OFFSET+8*2, 0, ':', 32, 1);			
			flag = true;
		}
	}
	
	OLED_Refresh_Gram();
}
Exemple #13
0
/**************按键外部中断触发**************/
void EXTI15_10_IRQHandler(void)
{
	if(EXTI_GetITStatus(EXTI_Line15)!=RESET)
	{
	//GetKeynum=GetKey();
	printf("/r/nkeyget");
  OLED_ShowString(0,0,"getkey");
	OLED_ShowNum(50,0,keynum,2,16);
		keynum++;
		if(keynum%2)
		{
			IDrive_Down();
			GP_Down();
			Blooth_Down();
    }
		else
		{
			IDrive_ON();
			GP_ON();
			Blooth_ON();
		}
	}
	EXTI_ClearITPendingBit(EXTI_Line15);
}
Exemple #14
0
void osd_id_disp(u8 data)
{
	
	OLED_ShowString(OSD_ID_START_ADDR,OSD_BAUDRATE_ID_Y_POS,"ID:",16);  

	if(data<10)
	{
		OLED_ShowNum(OSD_ID_NUM_START_ADDR,OSD_BAUDRATE_ID_Y_POS,0,1,16);
		OLED_ShowNum(OSD_ID_NUM_START_ADDR+8,OSD_BAUDRATE_ID_Y_POS,0,1,16);
		OLED_ShowNum(OSD_ID_NUM_START_ADDR+8+8,OSD_BAUDRATE_ID_Y_POS,data,1,16);
	}
	else if(data < 100)
	{
		OLED_ShowNum(OSD_ID_NUM_START_ADDR,OSD_BAUDRATE_ID_Y_POS,0,1,16);
		OLED_ShowNum(OSD_ID_NUM_START_ADDR+8,OSD_BAUDRATE_ID_Y_POS,data,2,16);
	}
	else 
	{
		OLED_ShowNum(OSD_ID_NUM_START_ADDR,OSD_BAUDRATE_ID_Y_POS,data,3,16);
	}
}
Exemple #15
0
void menu_Showtime()
{	
		OLED_ShowNum(0,0,Time/3600,2,16,0);
//		OLED_ShowString(16,0,":");
		OLED_ShowNum(24,0,Time%3600/60,2,16,0);
//		OLED_ShowString(40,0,":");
		OLED_ShowNum(48,0,Time%60,2,16,0);
	
			OLED_ShowNum(0,2,img.CerPtx,3,16,1);
			OLED_ShowNum(32,2,img.CerPty,3,16,1);			
			OLED_ShowNum(64,2,img.CerR,3,16,1);
			OLED_ShowNum(98,2,img.rate,3,16,1);
	
			OLED_ShowNum(0,4,img.Line[0].pt1x,3,16,1);
			OLED_ShowNum(32,4,img.Line[0].pt1y,3,16,1);		
			OLED_ShowNum(64,4,img.Line[0].pt2x,3,16,1);
			OLED_ShowNum(98,4,img.Line[0].pt2y,3,16,1);
			
			
	
	    switch(FLYMODE)
			{
				case CTRLP:
					OLED_ShowString(50,6,"CTRLP");
				break;
				case _A_B_:
					OLED_ShowString(50,6,"_A_B_");
				break;
			}
}
void mode5_Display(u8 r)
{
	OLED_ShowStr(0,4,"             cm",2);
	OLED_ShowStr(0,4,"R:",2);
	OLED_ShowNum(r);
}
Exemple #17
0
int main(void)
{
	u8 len=0;
	u8 temp[100];
	u8 t=0;
	u8 flag=0;
	char mode='O';
	long value=0;
	u8 counter=0;
	//char val2str[]="50";
	char SelfCheck='O';
	int D_val=0;
	u8 SelfCheckCounter=0;
	/////////////////////以上变量定义///////////////////////////
	
	delay_init(72);
	USART1_Init(19200);//与地面站传递命令
	USART2_Init(115200);//与X86板子传递命令
	USART3_Init(115200);//调试用
	HCSR04_Init();
	ResetOLED();
	OLED_Init();
	Key_Init();
	///////////////以上初始化///////////////////////
	OLED_ShowString(35,20,"READY",24);
	OLED_Refresh_Gram();
	delay_ms(1000);
	OLED_Clear();
	/////////////////////////////欢迎界面,提示准备工作/////////////////////////////////
	while(KEY==1)
	{
		OLED_ShowString(0,0,"Self checking now...",12);
		OLED_Refresh_Gram();
		if(USART_RX2_STA&0x8000)
		{					   
			len=USART_RX2_STA&0x3fff;//得到此次接收到的数据长度
			for(t=0;t<len;t++)
			{
				temp[t]=Rx2Buf[t];
				while((USART2->SR&0X40)==0);//等待发送结束
			}
			flag=1;
			USART_RX2_STA=0;
		}//接受来自X86的命令,用于自检。
		
		if(flag==1)
		{
			SelfCheck=TempOrPressure(temp);
				{
					if(SelfCheck=='C')
					{
						value=ValueOfMea(temp);
						if(value==1)
						{
							OLED_ShowString(0,15,"Environment ok",12);
							SelfCheckCounter++;
						}
						if(value==2)
						{
							OLED_ShowString(0,30,"The data chain ok",12);
						}
						if(value==0)
						{
							OLED_ShowString(0,42,"Checking fail...",12);
						}
					}
				}
			memset(temp,0,sizeof(u8)*100);
			flag=0;
		}//先对开发环境进行自检,在VS下下发ok标志即可。
		OLED_Refresh_Gram();
		
		if(SelfCheckCounter==1)//如果已经通过了开发环境自检
		{
			while(KEY==1)//不按强制退出就一直自检,直到成功
			{
				if(DataChain_SelfTest()==1)//数据链自检完成
					break;
				else
					continue;
			}
			SelfCheckCounter=0;
			break;//在不按按键强制退出的情况下,只有自检成功了才能退出。
		}
	}
	OLED_Clear();
	/////////////////////////以上对上位机的自检,按键强制结束//////////////////
	
	OLED_ShowString(0,0,"Parameters",16);
	OLED_ShowString(0,16,"X=",12);
	OLED_ShowString(0,28,"Y=",12);
  OLED_ShowString(0,40,"S=",12);
  OLED_ShowString(0,52,"D=",12);
	OLED_Refresh_Gram();
	flag=0;//复位flag
	///////////显示参数////////////////////////////////
	//AutoLaunch();
	////////////////////////以上开始起飞/////////////////////////////////

	while(1)
	{
		if(USART_RX2_STA&0x8000)
		{					   
			len=USART_RX2_STA&0x3fff;//得到此次接收到的数据长度
			for(t=0;t<len;t++)
			{
				temp[t]=Rx2Buf[t];
				while((USART2->SR&0X40)==0);//等待发送结束
			}
			flag=1;
			USART_RX2_STA=0;
			//printf3("%s\r\n",temp);
		}//接受来自X86的命令
		
		
		if(flag==1)
		{
			mode=TempOrPressure(temp);
			if(mode=='S')
			{
				value=ValueOfMea(temp);
					{
						#ifdef __TRANSPARENT_MODE
							printf1("\"S\":\"%ld\"\r\n",value);
						#endif
						
						#ifdef __COMMAND_MODE
							E17_SendMsg(CMD_S_PARAM,value);
						#endif						
					}
				OLED_ShowNum(20,40,value,6,12);
//				counter++;
			}  
			
			if(mode=='X')
			{
				value=ValueOfMea(temp);
					{
						#ifdef __TRANSPARENT_MODE
							printf1("\"X\":\"%ld\"\r\n",value);
						#endif
						#ifdef __COMMAND_MODE
							E17_SendMsg(CMD_X_PARAM,value);
						#endif	
					}
				OLED_ShowNum(20,16,value,6,12);
//				counter++;
			}
			else if(mode=='Y')
			{
				value=ValueOfMea(temp);
					{
						#ifdef __TRANSPARENT_MODE
							printf1("\"Y\":\"%ld\"\r\n",value);
						#endif
						#ifdef __COMMAND_MODE
							E17_SendMsg(CMD_Y_PARAM,value);
						#endif	
					}
				OLED_ShowNum(20,28,value,6,12);
//				counter++;
			}
			{
				  delay_ms(10);//太小在透传情况下可能出问题?
					{
						D_val=HCSR04_GetDistance_Filter();
						#ifdef __TRANSPARENT_MODE
							printf1("\"D\":\"%ld\"\r\n",D_val);
						#endif
						
						#ifdef __COMMAND_MODE
							E17_SendMsg(CMD_D_PARAM,value);			
						#endif	
					}
				OLED_ShowNum(20,52,D_val,6,12);
//				counter=0;
			}//去掉了判断,每个周期都要做判断,同时进行距离的pid调控。
			OLED_Refresh_Gram();
			memset(temp,0,sizeof(u8)*100);
			flag=0;
		}
	}
}
void mode2_Display(u8 lenth)
{
	OLED_ShowStr(0,4,"                ",2);
	OLED_ShowStr(0,4,"lenth:       cm",2);
	OLED_ShowNum(lenth);
}
Exemple #19
0
void display_step_count()
{
	OLED_ShowNum(36, 16, get_the_step_count(), 3, 16);
	OLED_ShowString(0, 16, "SP:");
	OLED_Refresh_Gram();
}
Exemple #20
0
void menu_Setsen()
{
	u8 position = 1;
	while(1)
	{
		switch(Key_Scan())
		{
			case 1:
				OLED_Clear(120,position*2-2,127,position*2-2+1);
				position++;
				if(position>4)
					position = 1;
				OLED_ShowChar(120,position*2-2,'S');
			break;
			case 2:
				OLED_Clear(120,position*2-2,127,position*2-2+1);
				position--;
			  if(position<1)
					position = 4;
				OLED_ShowChar(120,position*2-2,'S');
			break;
			case 3:
				if(position==1)
				{
					Expect.hight++;
				}
				else if(position==2)
				{
					sen.angle_test_offset.pitch+=0.01f;
				}
				else if(position==3)
				{
					sen.angle_test_offset.roll+=0.01f;
				}
				else if(position==4)
				{
					sen.angle_test_offset.yaw+=0.01f;
				}
			break;
			case 4:
				if(position==1)
				{
					Expect.hight--;
				}
				else if(position==2)
				{
					sen.angle_test_offset.pitch-=0.01f;
				}
				else if(position==3)
				{
					sen.angle_test_offset.roll-=0.01f;
				}
				else if(position==4)
				{
					sen.angle_test_offset.yaw-=0.01f;
				}
			break;
			case 5:
				
			break;
			case 6:
				goto ret;
			break;
			default:
				break;
		}
		
		OLED_ShowNum(72,0,Expect.hight,3,18,0);
		OLED_ShowFloat(72,2,sen.angle_test_offset.pitch - 10.00f,2);
		OLED_ShowFloat(72,4,sen.angle_test_offset.roll - 10.00f,2);
		OLED_ShowFloat(72,6,sen.angle_test_offset.yaw - 10.00f,2);	
	}
	ret: ;
		
}
Exemple #21
0
/**
  * @brief  串口打印输出
  * @param  None
  * @retval None
  */
int main(void)
{
	uint8_t data[64],BrailleDots[40],InPacket[2];
	uint32_t i=0,ret=0,voltemp;
/************************系统初始化函数*****************************/
	Set_System();//系统时钟初始化
	power_initial(); //电源控制管脚初始化
	USART_Configuration();//串口1初始化
  GP_initial();        //MCU串口初始化
	blooth_initial();    //蓝牙串口初始化
	delay_init();        //延时函数初始化
	NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	OLED_Init();			//初始化OLED     
	ADC1_Init();      //初始化ADC1
	//USB初始化
	USB_Interrupts_Config();
	Set_USBClock();
	USB_Init();
	        
/*******************************************************************/
	Board_ON();//板载自锁供电
	Blooth_Down();  //初始化关闭蓝牙
	GP_Down();      //初始化关闭51单片机
	IDrive_Down();  //初始化关闭恒流源
	 OLED_Clear();	 //刷新
		 // OLED_ShowString(0,0, "DAISY IS HOT");  //字符串显示
	 OLED_ShowString(0,0, "Welcome to BD");
	 OLED_ShowString(0,2, "Starting...");
	delay_ms(1000);
	EXTI_PD2_Config(); //KEY外部中断检测
	EXTI_PD3_Config(); //关机检测
	//printf("\x0c\0");printf("\x0c\0");//超级终端清屏
	//printf("\033[1;40;32m");//设置超级终端背景为黑色,字符为绿色
  //开机测试
	printf("\r\n*******************************************************************************");
	printf("\r\n************************ Copyright 2009-2012, ViewTool ************************");
	printf("\r\n*************************** http://www.viewtool.com ***************************");
	printf("\r\n***************************** All Rights Reserved *****************************");
	printf("\r\n*******************************************************************************");
	printf("\r\n");
  /*****************OLED显示*******************/
		
		 delay_ms(3000);
		 OLED_Clear();	 //刷新
		 OLED_ShowString(0,0,"DISCHARGING...");  
		 delay_ms(3000);
		 //OLED_DrawBMP(0,0,128,8,gImage_daisy);
		 //delay_ms(3000);
	//	 blooth_printf(USART2,"blooth is OK");
		//GP_printf
			 OLED_Clear();
	/***********************************************/
 // GPIO_SetBits(GPIOE,GPIO_Pin_3);
	while(1)
	{
		
/******************USB消息轮询*********************/
		USBDataGet(data,BrailleDots,InPacket);
	
	/****************************************************/	
	  if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_12))
			OLED_ShowString(0,0,"DISCHARGING");
		else
			OLED_ShowString(0,0,"CHARGING");
	/***************电池电压检测******************/
    	ADC_ConvertedValueLocal =(float) ADC_ConvertedValue[1]/2048*3.3*1.07; // 读取转换的AD值、
			printf("\r\n The PC4 current AD value = 0x%04X \r\n", ADC_ConvertedValue); 
	   	printf("\r\n The PC4 current AD value = %f V \r\n",ADC_ConvertedValueLocal); 	
      OLED_ShowString(0,4,"ICPOWER=");
	    voltemp=ADC_ConvertedValueLocal*1000;
	    OLED_ShowNum(64,4,voltemp,4,16);
	    OLED_ShowString(100,4,"mv");
	    ADC_ConvertedValueLocal =(float) ADC_ConvertedValue[0]/2048*3.3*1.08;// 读取转换的AD值、
			printf("\r\n The PC5 current AD value = 0x%04X \r\n", ADC_ConvertedValue); 
	   	printf("\r\n The PC5 current AD value = %f V \r\n",ADC_ConvertedValueLocal); 
		  OLED_ShowString(0,6,"SYSPOWER=");
	    voltemp=ADC_ConvertedValueLocal*1000;
	    OLED_ShowNum(72,6,voltemp,4,16);
	    OLED_ShowString(108,6,"mv");
/****************************************************************/	
	/**********************蓝牙打印测试***********************/
	   blooth_printf(USART2,"\r\nblooth is ok!\r\n");
	   GP_printf(USART3,"\r\nMCU Connect\r\n");
/****************************************************************/	
//	 IDrive_ON();
//		  printf("\r\nIC on");
		  Delay(0x0FFFEF);
		  Delay(0x0FFFEF);
		  Delay(0x0FFFEF);
		  Delay(0x0FFFEF);
		  Delay(0x0FFFEF);
		  Delay(0x0FFFEF);
//		  IDrive_Down();
			
//		  printf("\r\nIC down");
		  Delay(0x0FFFEF);
		  Delay(0x0FFFEF);
			Delay(0x0FFFEF);
		  Delay(0x0FFFEF);
		  Delay(0x0FFFEF);
		  Delay(0x0FFFEF);	
			//GPIO_ResetBits(GPIOB,GPIO_Pin_13);
	
	
		
			/*****************复位*********************/
		 
	}
}