Exemplo n.º 1
0
/*
 * 要想图片显示成功
 * 需把字库拷贝到sd卡上,然后把sd卡插到开发板的卡槽上
 */
int main(void)
{

	
		LCD_Init();	
		LCD_Clear(0, 0, 240, 320, BACKGROUND);		
		  
		/* USART1 config */
		//USART1_Config();  
		//printf("\r\n this is a fatfs test demo \r\n");
		
	/* 初始化sd卡文件系统,因为汉字的字库放在了sd卡里面 */
		Sd_fs_init();	
	
		/* 设置Lcd Gram 扫描方向为: 左上角 -> 右下角*/
		//Lcd_GramScan( 1 );
		LCD_DispStr(5, 5, (uint8_t *)"fatfs init success", RED);
		LCD_DispStr(5, 25, (uint8_t *)"insure the sdcard has insert......", RED);
	
	  LCD_DispStrCH(50, 50, (uint8_t *)"野火开发板", RED);
	  LCD_DispEnCh(5, 90, "Welcome to use 野火 ISO Stm32 开发板 bigo------", RED);
	
		/* 显示BMP图片 */
		Lcd_show_bmp(0, 0,"/wildfire.bmp");
		Lcd_show_bmp( 10,10,"/pic1.bmp");		
    Lcd_show_bmp( 170,0,"/pic2.bmp");  
	
		while(1);
}
void LcdShow(void)
{
		LCD_DispStr(10, 10, (uint8_t *)line1, RED);
		LCD_DispStr(10, 30, (uint8_t *)line2, RED);
		LCD_DispStr(10, 40, (uint8_t *)line3_state, RED);
		LCD_DispStr(10, 50, (uint8_t *)line4, RED);
		LCD_DispStr(10, 60, (uint8_t *)line5, RED);
		LCD_DispStr(10, 70, (uint8_t *)line6, RED);
		LCD_DispStr(10, 80, (uint8_t *)line7, RED);
		LCD_DispStr(10, 90, (uint8_t *)line8, RED);
		LCD_DispStr(10, 100, (uint8_t *)line9, RED);
		LCD_DispStr(10, 120, (uint8_t *)line10, RED);

}
Exemplo n.º 3
0
int main(void)
{
	//int flag=0;
    USART1_Config();
	NVIC_Configuration();
    while(1){
        LCD_DispStr(5, 5, (uint8_t *)"�����ϳ������", RED);
        if((Key_Scan(GPIOA,GPIO_Pin_0)== KEY_ON)){
        printf("\r\n ˮ�������緽��, \r\n");
        }
        Delay(0xFFFFF);
        if((Key_Scan(GPIOA,GPIO_Pin_0)== KEY_ON)){
        printf("\r\n ɽɫ�՝�������. \r\n");
        }
        Delay(0xFFFFF);
        if((Key_Scan(GPIOA,GPIO_Pin_0)== KEY_ON)){
        printf("\r\n ��������������, \r\n");
        }
        Delay(0xFFFFF);
        if((Key_Scan(GPIOA,GPIO_Pin_0)== KEY_ON)){
        printf("\r\n ��ױŨĨ������. \r\n");
        Delay(0xFFFFF);
        }
        
    }
}
/*
 * 初始化液晶,串口,触摸屏,flash及sd卡 * 
 */
void ISO_Init(void)
{
	uint8_t k;
	
  /* 液晶初始化先于串口,不然会有bug,至于是什么原因我也不知道:( */
  LCD_Init();
	
	LCD_Clear(0,0,240,320,WHITE);
	
	LCD_DispStr(20,150,"board init,please wait... ",RED);
  
  USART1_Config();	
	
	

	/* 初始化sd卡文件系统,因为汉字的字库放在了sd卡里面 */
	Sd_fs_init();	

	#ifdef WORD_MODE
  /* 显示界面图片 */
	Lcd_show_bmp(0, 0,"/boardtest/boardtest.bmp");
	#else
	 /* 显示界面图片 */
	Lcd_show_bmp(0, 0,"/boardtest/ISO/ui_boardtest.bmp");

	#endif
	Lcd_List(1);
	
	/* 初始化外部FLASH */
	SPI_FLASH_Init();
	//SPI_FLASH_SectorErase(0);
  
	/* 触摸屏IO和中断初始化 */
	Touch_Init();		
		
		
		/*-------------------------------------------------------------------------------------------------------*/  
		#if 1
		SPI_FLASH_BufferRead(&cal_flag, 0, 1);
		if( cal_flag == 0x55 )
		{
			SPI_FLASH_BufferRead((void*)cal_p, 1, sizeof(cal_p));
			SPI_FLASH_CS_HIGH();
			for( k=0; k<6; k++ )
						printf("\r\n rx = %LF \r\n",cal_p[k]);
		}
		else
		{
			/* 等待触摸屏校正完毕 */
			while(Touch_Calibrate() !=0);
		}
		#elif 0
		/* 等待触摸屏校正完毕 */
		while(Touch_Calibrate() !=0);
		#endif
	


}
Exemplo n.º 5
0
/**
  * @brief  主函数
  * @param  无  
  * @retval 无
  */
int main(void)
{  
  LCD_Init();	
  
	LCD_Clear(0, 0, 240, 320, BACKGROUND);	
  
	LCD_DispChar(60, 60, 'A', RED);

  
	LCD_DispStr(10, 10, (uint8_t *)"This is a lcd demo to display ascii", RED);	
	
	LCD_DispStr(40, 100, (uint8_t *)"count:", RED);
	
	for( n=0; n<500000; n++ )
	{
		LCD_DisNum(100, 100, n, RED);
		Lcd_Delay(0xAFFf>>4);
	}
	
	while( 1 ){}
}
Exemplo n.º 6
0
int main(void)
{
	GPIO_Config();
	SYSTICK_Config();
	LCD_Init();
	ADC_Config();
	USART_Config();
	DAC_Mode_Init();


	LCD_Clear(0, 0, 240, 320, BACKGROUND);
	LCD_DispStr(40, 60, (uint8_t*)"Iin_Base:", BLACK);
	LCD_DispStr(40, 90, (uint8_t*)"Iin_Phase:", BLACK);
	LCD_DispStr(40, 110, (uint8_t*)"Vin_Phase:", BLACK);
	LCD_DispStr(40, 140, (uint8_t*)"PF:", BLACK);
//	
//	Init_Iin(Iin);
//	Init_Vin(Vin);
//	
//	cr4_fft_256_stm32(Iin_FFT,Iin,NPT);
//	cr4_fft_256_stm32(Vin_FFT,Vin,NPT);
//	
//	GetPowerMag(Iin_Mag,Iin_FFT);
//	
//	BasePercent = GetBasePercent(Iin_Mag);
//	
//	Iin_Phase = GetPhase(Iin_FFT);
//	
//	Vin_Phase = GetPhase(Vin_FFT);
//	
//	PowerFactor = GetPFValue(BasePercent, Iin_Phase, Vin_Phase);
//	
//	LCD_DispADC(120, 60, BasePercent, BLACK);
//	LCD_DisNum(120, 90, (uint16_t)Iin_Phase, BLACK);
//	LCD_DisNum(120, 110, (uint16_t)Vin_Phase, BLACK);
//	LCD_DispADC(120, 140, PowerFactor, BLACK);
	
	while(1)
	{
		Vin_total=0;
		Iin_total=0;
		Iout_total=0;
		for(i=0;i<NPT;i++)
		{
				Vin[i]=ADCConvertedValue[i*5];
				//Vin_total+=Vin[i];
				Iin[i]=ADCConvertedValue[i*5+1];
				//Iin_total+=Iin[i];
				Iout[i]=ADCConvertedValue[i*5+2];
				//Iout_total+=Iout[i];
		}
//		Vin_total=Vin_total/256;
//		Iin_total=Iin_total/256;
//		Iout_total=Iout_total/256;		

//		LCD_DisNum(120, 90, Vin_total, BLACK);
//		LCD_DisNum(120, 110, Iin_total, BLACK);
//		LCD_DisNum(120, 130, Iout_total, BLACK);
		
	cr4_fft_256_stm32(Iin_FFT,Iin,NPT);
	cr4_fft_256_stm32(Vin_FFT,Vin,NPT);
	
	GetPowerMag(Iin_Mag,Iin_FFT);
	
	BasePercent = GetBasePercent(Iin_Mag);
	
	Iin_Phase = GetPhase(Iin_FFT);
	
	Vin_Phase = GetPhase(Vin_FFT);
	
	PowerFactor = GetPFValue(BasePercent, Iin_Phase, Vin_Phase);
	
	LCD_DispADC(120, 60, BasePercent, BLACK);
	LCD_DisNum(120, 90, (uint16_t)Iin_Phase, BLACK);
	LCD_DisNum(120, 110, (uint16_t)Vin_Phase, BLACK);
	LCD_DispADC(120, 140, PowerFactor, BLACK);
	
	
	
	}


}	//main
/* 
 * 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();	

}