コード例 #1
0
ファイル: BSP.c プロジェクト: yitiandelan/MyF4Project
/*-------------------------------------------------------
功能	: 初始化
输入	: void
返回	: void
Copyright : yitiandelan.
---------------------------------------------------------*/
void BSP_Init(void)
{
	BSP_OSC_Init();
	
	#if (configUSE_LED == 1)
	BSP_LED_Init();
	#endif
	#if (configUSE_DAC == 1)
	BSP_DAC_Init();
	#endif
	#if (configUSE_ADC123 == 1)
	BSP_ADC_Init();
	#endif
	#if (configUSE_ExternADC == 1)
	BSP_ADC_ex_Init();
	#endif
	#if (configUSE_LCD == 1)
	BSP_LCD_Init();
	#endif
	#if (configUSE_CODEC == 1)
	BSP_CODEC_Init();
	#endif
	#if (configUSE_PWM == 1)
	BSP_TIM3_Init();
	#endif
	#if (configUSE_RTT == 1)
	BSP_RTT_Init();
	#endif
	#if (configUSE_USB == 1)
	BSP_USB_Init();
	#endif
	#if (configUSE_MPU == 1)
	BSP_MPU_Init();
	#endif
}
コード例 #2
0
ファイル: menu.c プロジェクト: pengphei/STM32Cube_L0
/**
  * @brief  Manages Menu Process.
  * @param  None
  * @retval None
  */
void Menu_Process(void)
{
  tsl_user_status_t tsl_status;
  
  /* background menu: entry menu */
  switch(menu_state)
  {
  case BACKGROUND_MENU:
    BSP_EPD_SetFont(&Font16);
    BSP_EPD_DrawImage(0, 0, 72, 172, Background_pic);
    BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"STM32L053", RIGHT_MODE);
    BSP_EPD_SetFont(&Font12);
    BSP_EPD_DisplayStringAt(87, 8, (uint8_t*)"DISCOVERY", LEFT_MODE);
    BSP_EPD_DisplayStringAt(71, 3, (uint8_t*)"DEMONSTRATION", LEFT_MODE);
    BSP_EPD_DisplayStringAt(94, 0, (uint8_t*)"V1.0.0", LEFT_MODE);
    BSP_EPD_RefreshDisplay();
    HAL_Delay(2000);
    menu_state = MAIN_MENU;
    break;

  /* main menu */
  case MAIN_MENU:
    BSP_EPD_Clear(EPD_COLOR_WHITE);
    BSP_EPD_DrawImage(5, 0, 48, 48, Mouse_pic);
    BSP_EPD_DrawImage(130, 0, 48, 26, Batery_pic);
    BSP_EPD_DrawImage(60, 0, 16, 60, Slider_pic);
    BSP_EPD_SetFont(&Font12);
    BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"STM32L053 Demonstration", CENTER_MODE);
    BSP_EPD_DisplayStringAt(56, 7, (uint8_t*)"USE LTS to", LEFT_MODE);
    BSP_EPD_DisplayStringAt(53, 4, (uint8_t*)"Select Demo", LEFT_MODE);
    BSP_EPD_DrawRect(2, 12, 166, 5);
    BSP_EPD_RefreshDisplay();
    menu_state = MODULE_MENU;
    break;
    
  case MODULE_MENU:
    MyLinRots[0].p_Data->Position = 0;
    /* Execute STMTouch Driver state machine */
    tsl_status = tsl_user_Exec();
    if(tsl_status != TSL_USER_STATUS_BUSY)
    {
      if(LINEAR_DETECT)
      {
        /* USB Module Menu*****************************************************/
        if((LINEAR_POSITION >= 1 ) && (LINEAR_POSITION <= 127))
        {
          menu_state = USB_MENU;
        }  
        /* PWR Module Menu*****************************************************/
        else if ((LINEAR_POSITION >= 128 ) && (LINEAR_POSITION < 255))
        {
          menu_state = PWR_MENU;
        }
      }
    }
    break;

  case USB_MENU:
    BSP_EPD_Clear(EPD_COLOR_WHITE);
    BSP_EPD_DrawImage(13, 4, 28, 146, FullSlider_pic);
    BSP_EPD_SetFont(&Font12);
    BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"STM32L053 USB Demo", CENTER_MODE);
    BSP_EPD_DisplayStringAt(15, 1, (uint8_t*)"LEFT RIGHT UP DOWN", LEFT_MODE);
    BSP_EPD_DrawRect(2, 12, 166, 5);
    BSP_EPD_DrawRect(145, 0, 26, 4);
    BSP_EPD_SetFont(&Font8);
    BSP_EPD_DisplayStringAt(146, 1, (uint8_t*)"B1 Ex", LEFT_MODE);
    BSP_EPD_RefreshDisplay();
    MyLinRots[0].p_Data->Position = 0;

    /* USB Clock config */
    USBClock_Enable();
    /* USB Initialization */
    BSP_USB_Init();
    
    ButtonPressed = 0;
    while(ButtonPressed == 0)
    {
      /* Execute STMTouch Driver state machine */
      tsl_status = tsl_user_Exec();
      if(tsl_status != TSL_USER_STATUS_BUSY)
      {
        USB_process(tsl_status);
      }
    }
    /* USB Clock disable */
    USBClock_Disable();
    /* USB DeInitialize */
    USBD_DeInit(&USBD_Device);

    ButtonPressed = 0;
    menu_state = MAIN_MENU;
    break;

  case PWR_MENU:
    BSP_LED_Off(LED4);
    BSP_LED_Off(LED3);
    /* Power Main IDD Menu ****************************************************/
    BSP_EPD_Clear(EPD_COLOR_WHITE);
    BSP_EPD_DrawImage(30, 0, 16, 60, Slider_pic);
    BSP_EPD_DrawImage(3, 4, 32, 32, Run_pic);
    BSP_EPD_DrawImage(50, 4, 32, 29, Sleep_pic);
    BSP_EPD_DrawImage(90, 4, 32, 29, LPSleep_pic);
    BSP_EPD_DrawImage(130, 4, 32, 32, Stop_pic);
    BSP_EPD_SetFont(&Font12);
    BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"STM32L053 IDD Demo", CENTER_MODE);
    BSP_EPD_DrawRect(2, 12, 166, 5);
    BSP_EPD_DrawRect(113, 0, 57, 3);
    BSP_EPD_SetFont(&Font8);
    BSP_EPD_DisplayStringAt(116, 1, (uint8_t*)"B1 to Exit", LEFT_MODE);
    BSP_EPD_RefreshDisplay();
   
    MyLinRots[0].p_Data->Position = 0;
    MyLinRots[0].p_Data->StateId = TSL_STATEID_RELEASE;
    ButtonPressed = 0;
    tsl_status = tsl_user_Exec();
    while((ButtonPressed == 0) && ((MyLinRots[0].p_Data->StateId != TSL_STATEID_DETECT) || (LINEAR_POSITION == 0)) && (!LINEAR_POSITION))
    {
      tsl_status = tsl_user_Exec();
    }
    
    if(MyLinRots[0].p_Data->StateId  == TSL_STATEID_DETECT)
    {
      /* Run mode menu ********************************************************/
      if((LINEAR_POSITION >= 1 ) && (LINEAR_POSITION <= 64))
      {
        Idd_Run_process();
        BSP_EPD_Clear(EPD_COLOR_WHITE);
        BSP_EPD_SetFont(&Font12);
        BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"MCU in Run Mode", CENTER_MODE);
        BSP_EPD_DrawRect(2, 12, 166, 5);
        BSP_EPD_DisplayStringAt(8, 7, (uint8_t*)"Current consumption", LEFT_MODE);
        BSP_EPD_DisplayStringAt(8, 3, str, LEFT_MODE);
        BSP_EPD_DrawRect(113, 0, 57, 4);
        BSP_EPD_SetFont(&Font8);
        BSP_EPD_DisplayStringAt(116, 1, (uint8_t*)"B1 to Exit", LEFT_MODE);
        BSP_EPD_RefreshDisplay();
      }
      
      /* Sleep mode menu ******************************************************/
      else if ((LINEAR_POSITION >= 65 ) && (LINEAR_POSITION <= 127))
      {
        /* Display before entering Sleep mode */
        BSP_EPD_Clear(EPD_COLOR_WHITE);
        BSP_EPD_SetFont(&Font12);
        BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"MCU in Sleep Mode", CENTER_MODE);
        BSP_EPD_DrawRect(2, 12, 166, 5);
        BSP_EPD_RefreshDisplay();
        
        /* Execute Sleep */
        Idd_Sleep_process();
        
        /* Display after wakeup from Sleep mode */
        BSP_EPD_Clear(EPD_COLOR_WHITE);
        BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"Wake up from Sleep", CENTER_MODE);
        BSP_EPD_DrawRect(2, 12, 166, 5);
        BSP_EPD_DisplayStringAt(8, 7, (uint8_t*)"Current consumption", LEFT_MODE);
        BSP_EPD_DisplayStringAt(8, 3, str, LEFT_MODE);
        BSP_EPD_DrawRect(113, 0, 57, 4);
        BSP_EPD_SetFont(&Font8);
        BSP_EPD_DisplayStringAt(116, 1, (uint8_t*)"B1 to Exit", LEFT_MODE);
        BSP_EPD_RefreshDisplay();
      }
      
      /* LP Sleep menu ********************************************************/
      else if ((LINEAR_POSITION >= 128 ) && (LINEAR_POSITION <= 191))
      {
        /* Display before entering LP Sleep mode */
        BSP_EPD_Clear(EPD_COLOR_WHITE);
        BSP_EPD_SetFont(&Font12);
        BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"MCU in LPSleep Mode", CENTER_MODE);
        BSP_EPD_DrawRect(2, 12, 166, 5);
        BSP_EPD_RefreshDisplay();
         
        /* Execute LP SLEEP */
        Idd_LPSleep_process();
        
        /* Display after wakeup from LP Sleep mode */
        BSP_EPD_Clear(EPD_COLOR_WHITE);
        BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"Wake up from LPSleep", CENTER_MODE);
        BSP_EPD_DrawRect(2, 12, 166, 5);
        BSP_EPD_DisplayStringAt(8, 7, (uint8_t*)"Current consumption", LEFT_MODE);
        BSP_EPD_DisplayStringAt(8, 3, str, LEFT_MODE);
        BSP_EPD_DrawRect(113, 0, 57, 4);
        BSP_EPD_SetFont(&Font8);
        BSP_EPD_DisplayStringAt(116, 1, (uint8_t*)"B1 to Exit", LEFT_MODE);
        BSP_EPD_RefreshDisplay();
      }
      /* Stop menu ************************************************************/
      else
      {
        /* Display before entering Stop mode */
        BSP_EPD_Clear(EPD_COLOR_WHITE);
        BSP_EPD_SetFont(&Font12);
        BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"MCU in Stop Mode", CENTER_MODE);
        BSP_EPD_DrawRect(2, 12, 166, 5);
        BSP_EPD_RefreshDisplay();
        
        /* Execute STOP Process */
        Idd_Stop_process();
        
        /* Display after wakeup from Stop mode */
        BSP_EPD_Clear(EPD_COLOR_WHITE);
        BSP_EPD_DisplayStringAt(0, 13, (uint8_t*)"Wake up from STOP", CENTER_MODE);
        BSP_EPD_DrawRect(2, 12, 166, 5);
        BSP_EPD_DisplayStringAt(8, 7, (uint8_t*)"Current consumption", LEFT_MODE);
        BSP_EPD_DisplayStringAt(8, 3, str, LEFT_MODE);
        BSP_EPD_DrawRect(113, 0, 57, 4);
        BSP_EPD_SetFont(&Font8);
        BSP_EPD_DisplayStringAt(116, 1, (uint8_t*)"B1 to Exit", LEFT_MODE);
        BSP_EPD_RefreshDisplay();
      }
      
      ButtonPressed = 0;
      while(ButtonPressed == 0)
      {
      }
      menu_state = PWR_MENU;
    }
    else /* BUTTON_KEY != 0 */
    {
      menu_state = MAIN_MENU;
    }

    break;
    
  default:
    break;
  }
}