Example #1
0
/*  \brief Set the intensity of the LED which are On to a specific value.
 *
 *  \param intensity      Input. The LED intensity (0% to 100%)
 *
 *  \return the status of the command execution.
 */
bool e_ledm_refresh_intensity( U32 intensity )
{
   // Adjust LED intensity
   if( LED_Test( LED_MONO0_GREEN ) ) LED_Set_Intensity(LED_MONO0_GREEN, intensity);
   if( LED_Test( LED_MONO1_GREEN ) ) LED_Set_Intensity(LED_MONO1_GREEN, intensity);
   if( LED_Test( LED_MONO2_GREEN ) ) LED_Set_Intensity(LED_MONO2_GREEN, intensity);
   if( LED_Test( LED_MONO3_GREEN ) ) LED_Set_Intensity(LED_MONO3_GREEN, intensity);
   return true;
}
Example #2
0
/*!
 *  \brief Get the ledm2 current value.
 *
 *  \param buf char buffer in which the ledm2 state is stored.
 *
 *  \return true upon success, false if error.
 */
bool b_ledm2_get_value( char* buf )
{
   // Build the log string.
   if( LED_Test( LED_MONO1_GREEN ) ) {
      sprintf( buf, "%s\r\n", CPLED_ON_STR);
   } else {
      sprintf( buf, "%s\r\n", CPLED_OFF_STR);
   }
   return true;
}
Example #3
0
/*
 * Name   : main
 * Input  : None
 * Output : None
 * Return : None
 */
int main(void)
{
    uint8_t ch;

    RCC_Configuration();

    RCC->APB2ENR |= RCC_APB2Periph_GPIOA;
    RCC->APB2ENR |= RCC_APB2Periph_GPIOB;
    RCC->APB2ENR |= RCC_APB2Periph_USART1;

    GPIO_Configuration();

    USART1_Init();

    while(1)
    {
        printf("\n---------------------\n");
        printf("Press menu key\n");
        printf("---------------------\n");
        printf("0> System Information\n");
        printf("---------------------\n");
        printf("1> LED Test\n");
        printf("2> KEY Test\n");
        printf("3> 7-Segment Test\n");
        printf("---------------------\n");
        printf("x> quit\n\n");

        ch = USART_GetCharacter(USART1);
        printf(" is selected\n\n");

        switch((char)ch)
        {
        case '0':
            System_Information();
            break;

        case '1':
            LED_Test();
            break;

        case '2':
            KEY_Test();
            break;

        case '3':
            Seven_Segment_Test();
            break;
        }

        if('x' == (char)ch)
        {
            break;
        }
    }
}
/*!
 *  \brief Get the ledm1 current value.
 *
 *  \param pxLog a Log structure.
 *
 *  \return true upon success, false if error.
 */
bool b_ledm1_get_value( xLogDef *pxLog )
{
   // Build the log string.
   if( LED_Test( LEDM1 ) )
      pxLog->pcStringLog = (char *)CPLED_ON_STR;
   else
      pxLog->pcStringLog = (char *)CPLED_OFF_STR;
   pxLog->pfFreeStringLog = NULL; // We use a constant

   return( true );
}
Example #5
0
void APP_EvntHandler(EVNT_Handle event) {
  switch(event) {
  case EVNT_STARTUP:
#if !PL_CONFIG_EVENTS_AUTO_CLEAR
      EVNT_ClearEvent(EVNT_STARTUP);
    #endif
	  LED_Test();
	  break;
  default:
      #if PL_CONFIG_HAS_KEYS
	  APP_KeyEvntHandler(event);
      #endif

	  break;
  }
}
/*
 * 根据串口不同的命令执行不同的程序
 * 用户也可以自行添加相应的程序
 */
void Board_Test(void)
{  
  while( 1 )
  {    
		
		
    switch( rec_cmd )
    {
		
			
			case 1:					//来自液晶触摸
      case '1':				//来自串口数据
        printf("按回车返回菜单 \r\n");
        printf("实验现象:LED1 LE2 LED3 轮流闪烁 \r\n");
				Lcd_Note(1);
				LCD_DispEnCh(20,110,"实验现象:LED1 LE2 LED3 轮流闪烁",BLUE);		
        LED_Test();         
        break;
      
			case 2:
      case '2':
        printf("按回车返回菜单 \r\n");
        printf("实验现象:KEY1控制LED1反转,KEY2控制LE2反转 \r\n");
				Lcd_Note(2);
				LCD_DispEnCh(20,110,"实验现象:KEY1控制LED1反转,KEY2控制LE2反转",BLUE);		
        Key_Test();        
        break;
      
			case 3:
      case '3':
        printf("按回车返回菜单 \r\n");
        printf("实验现象:串口打印出:eeprom读写测试成功 \r\n");
				Lcd_Note(3);
        Eeprom_Test();
        break;
      
			case 4:
      case '4':
				printf("按回车返回菜单 \r\n");
        printf("实验步骤 \r\n");
        printf("1-按照提示在串口中输入时间\r\n");
        printf("实验现象:串口输出新历农历和时间戳\r\n");
				Lcd_Note(4);
				LCD_DispEnCh(20,110,"实验说明:初始时间为程序固定的时间,若下面显示的时间每秒更新一次则说明RTC模块正常",BLUE);		

        RTC_Test();
        break;
      
			case 5:
      case '5':
        printf("按回车返回菜单 \r\n");
        printf("实验现象:串口每隔一段时间打印出采集到的电压值 \r\n         旋转ISO上的电位器,可使用电压值在0~3.25之间变动\r\n");
				Lcd_Note(5);
				LCD_DispEnCh(20,110,"实验说明:电压范围0-3.3 V,可调整电位器改变电压",BLUE);		
        ADC_Test();   
        break;
			
			case 6:
      case '6':
 				testing_state = SB_FM ;
        printf("按回车返回菜单 \r\n");
        printf("实验步骤 \r\n");
        printf("1-将ISO上的MP3-FM-SPK开关拨到FM档位\r\n");
        printf("2-接上耳机,同时耳机也是天线,当搜不到台的时候可移动耳机线接收信号\r\n");
        printf("实验现象:KEY1向上自动搜台,搜到台LED1亮。KEY2向下自动搜台,搜到台LED2亮 \r\n");
				Lcd_Note(6);
				LCD_DispEnCh(20,110,"实验说明:1-将ISO上的MP3-FM-SPK开关拨到FM档位",BLUE);
				LCD_DispEnCh(20,145,"2-接上耳机,同时耳机也是天线,当搜不到台的时候可移动耳机线接收信号",BLUE);
				LCD_DispEnCh(20,195,"稍后将进入FM收音机界面,硬件复位时返回",BLUE);
//				delay(0xFFFF);
//				delay(0xFFFF);
//				delay(0xFFFF);
//				delay(0xFFFF);
				RDA5807_FM_Test();
        break;
      
			case 7:
      case '7':
    		testing_state=SB_MP3;
        printf("按回车返回菜单 \r\n");
				printf("实验步骤 \r\n");
        printf("1-将ISO上的MP3-FM-SPK开关拨到MP3档位\r\n");
        printf("2-接上耳机,选择音乐即可播放,点击屏幕中的野火logo可以使用扬声器\r\n");
				Lcd_Note(7);
				LCD_DispEnCh(20,110,"实验说明:1-将ISO上的MP3-FM-SPK开关拨到MP3档位",BLUE);
				LCD_DispEnCh(20,145,"2-接上耳机,选择音乐即可播放,点击屏幕中的野火logo可以使用扬声器",BLUE);
				LCD_DispEnCh(20,195,"稍后将进入MP3界面,硬件复位时返回",BLUE);
//				delay(0xFFFF);
//				delay(0xFFFF);
//				delay(0xFFFF);
//				delay(0xFFFF);
				MP3_test();
        break;
      
			case 8:
      case '8':
      	printf("按回车返回菜单 \r\n");
        printf("实验现象:串口打印信息:CAN回环测试成功同时LED1和LED2亮\r\n");
				Lcd_Note(8);
				LCD_DispEnCh(20,110,"实验说明:CAN回环测试,不需要外部接线",BLUE);		
				CAN_Loopback_Test(); 
        break;
      
			case 9:
      case '9':
     
			  printf("按回车返回菜单 \r\n");
        printf("实验步骤 \r\n");
        printf("1-在ISO上插上DHT11模块 \r\n");
        printf("实验现象:串口打印出:湿度为xxxRH,温度为xxx℃ \r\n");
				Lcd_Note(9);
				LCD_DispEnCh(20,110,"实验说明:把DHT11模块接入开发板,正常时在屏幕显示温湿度",BLUE);		
        DHT11_Test();   
		  
        break;
      
			case 10:
      case 'a':
				printf("按回车返回菜单 \r\n");
        printf("实验步骤 \r\n");
        printf("1-在ISO上插上DS18b20模块 \r\n");
        printf("实验现象:串口每隔1s打印一次温度值,同时led1闪烁一次\r\n");
				Lcd_Note(10);
				LCD_DispEnCh(20,110,"实验说明:把DS18b20模块接入开发板,正常时在屏幕显示温度,同时LED闪烁",BLUE);		
				DS18B20_Test(); 
        break;
      
			case 11:
      case 'b': 
				printf("按回车返回菜单 \r\n");
        printf("实验步骤\r\n");
        printf("1-在ISO上插上SD卡,容量需小于32GB\r\n");
        printf("2-用microusb线连接电脑和ISO上的供电的microusb口(并不是 usb to uart) \r\n");
        printf("实验现象:串口会打印出:野火 ISO STM32 USB MASS STORAGE 实验\r\n         LED1闪烁,同时SD卡会在电脑上模拟出一个U盘\r\n");
        Lcd_Note(11);
				LCD_DispEnCh(20,110,"实验说明:1-在ISO上插上SD卡,容量需小于32GB",BLUE);		
				LCD_DispEnCh(20,150,"2-用microusb线连接电脑和ISO上的供电的microusb口(并不是 usb to uart)",BLUE);		
				LCD_DispEnCh(20,195,"正常时LED1闪烁,同时SD卡会在电脑上模拟出一个U盘",BLUE);		
				UsbMassStorage_Test();    

        break;
			
			case 12:
      case 'c':
        printf("按回车返回菜单 \r\n");
        printf("实验步骤 \r\n");
        printf("1-在ISO上插上摄像头模块(火眼OV7725)\r\n");
        printf("实验现象:液晶实时显示摄像头拍回来的图像\r\n");
				Lcd_Note(12);
				LCD_DispEnCh(20,110,"实验说明:把摄像头模块接入到ISO开发板中,正常时稍后液晶会显示摄像头拍回来的图像,使用硬件复位退出",BLUE);		
        delay(0xFFFF);
//				delay(0xFFFF);
//				delay(0xFFFF);
//				delay(0xFFFF);
				Camera_Test();  //采用二、三级代码优化会出错      
        break;
      
			case 13:
      case 'd': 
        printf("按回车返回菜单 \r\n");
        printf("实验步骤 \r\n");
        printf("1-在ISO上插上ENC28J60以太网模块,以太网模块用网线连接电脑或者路由器\r\n");
        printf("2-在DOS模式下输入命令: ping 192.168.1.15 \r\n");
        printf("3-电脑的IP地址或者局域网内的电脑的IP地址必须是192.168.1.x\r\n  但不能是192.168.1.15 \r\n");
        Lcd_Note(13);
				LCD_DispEnCh(20,110,"实验说明:1-在ISO上插上以太网模块,以太网模块用网线连接电脑或者路由器",BLUE);	
				LCD_DispEnCh(20,160,"2-在DOS模式下输入命令: ping 192.168.1.15  (能ping通表示正常)",BLUE);	
				LCD_DispEnCh(20,193,"3-电脑IP地址或者局域网内电脑的IP地址必须是192.168.1.x",BLUE);	

				ENC28J60_Test(); 
        break;
      
     
			case 14:
      case 'e':
        printf("按回车返回菜单 \r\n");
        printf("实验现象:LED1在PWM信号的控制下在呼吸\r\n");
				Lcd_Note(14);
				LCD_DispEnCh(20,110,"实验说明:LED1在PWM信号的控制下在呼吸",BLUE);		
        Breathing_Test();        
        break;
       
			case 15:
      case 'f':
        printf("按回车返回菜单 \r\n");
        printf("实验步骤\r\n");
        printf("1-在ISO上插上SRAM模块\r\n");
        printf("实验现象:串口打印出SRAM测试成功,同时LED2闪烁\r\n");
				Lcd_Note(15);	
				LCD_DispEnCh(20,110,"Please connect SRAM module to ISO board",BLUE);		
				delay(50000);
				SRAM_Test();      
        break;
      
			case 16:
      case 'g':
        printf("按回车返回菜单 \r\n");
        printf("实验步骤\r\n");
        printf("1-在ISO上插上NORFLASH模块\r\n");
        printf("实验现象:串口打印出NORFLASH测试成功,同时LED2闪烁\r\n");
        printf("\r\n 擦除时间有点长,请耐心等待...... \r\n");
				Lcd_Note(16);
				LCD_DispEnCh(20,110,"实验说明:测试时把NORFLASH模块接入到ISO开发板中,擦除时间有点长,请耐心等待......",BLUE);		
        NORFLASH_Test();      
        break;
      
			case 17:
      case 'h':
        printf("按回车返回菜单 \r\n");
        printf("实验步骤\r\n");
        printf("1-在ISO上插上NANDFLASH模块\r\n");
        printf("实验现象:串口打印NANDFLASH Test finished,同时LE1闪烁r\n");
        Lcd_Note(17);
				LCD_DispEnCh(20,110,"实验说明:测试时把NANDFLASH模块接入到ISO开发板中,正常时会显示NANDFLASH的ID",BLUE);		
				NANDFLASH_Test();      
        break;   
           
                        
      default:       
        break;
    }
  }
}
Example #7
0
/**
* @brief  Main program.
* @param  None
* @retval None
*/
int main(void)
{   
  /*!< At this stage the microcontroller clock setting is already configured, 
  this is done through SystemInit() function which is called from startup
  file (startup_stm32f0xx.s) before to branch to application main.
  To reconfigure the default setting of SystemInit() function, refer to
  system_stm32f0xx.c file*/ 
  
    /* Setup SysTick Timer for 1 msec interrupts.*/
  if (SysTick_Config(SystemCoreClock / 1000))
  { 
    /* Capture error */ 
    while (1);
  }     
  
  /* Initialize LEDs, User Button on STM32F072B-DISCO board ***********/
  STM_EVAL_PBInit(BUTTON_USER, BUTTON_MODE_EXTI); 
  
  STM_EVAL_LEDInit(LED3);
  STM_EVAL_LEDInit(LED4);
  STM_EVAL_LEDInit(LED5);
  STM_EVAL_LEDInit(LED6);
  
  /* Initialize Mems Gyroscope */
  Demo_GyroConfig();
  
  /* Initialize USB Device */
  USBD_Init(&USB_Device_dev,
            &USR_desc, 
            &USBD_HID_cb, 
            &USR_cb);
  
  /* Init STMTouch driver */
  TSL_user_Init(); 
  
   /* End of Initialisation */
  
    /* Delay 1s to select Test Program or to go directly through the demo*/
  Delay (1000);
  
  if (STM_EVAL_PBGetState(BUTTON_USER) == Bit_SET )
  {
    /* Wait for User button is released */
    while (STM_EVAL_PBGetState(BUTTON_USER) != Bit_RESET)
    {}
    
    /* Set ButtonPressed at 0 value  */ 
    ButtonPressed = 0;
    
    /* LED test : Blinking LEDs  */ 
    LED_Test();
    
    /* Wait for User button to be pressed to switch to USB Test
    the cursor move in square path and led On corresponding to such direction  */
    USB_Test();
    
    /* Move Discovery board to execute MEMS Test, Mems detect the angular rate
    and led On corresponding to such direction*/ 
    MEMS_Test();
    
    /* Wait for User button to be pressed to switch to Touch Sensor Test
    each TouchKey pointed correspond to specific Leds On, test can performed
    in both direction */ 
    LTS_Test();
  }
  
  /* Infinite loop */
  while (1)
  {  
    Demo();
  }
}