/** * @brief Joystick Exti demo * @param None * @retval None */ void Joystick_exti_demo (void) { uint8_t status = 0; uint32_t ITstatus = 0; Joystick_SetHint(1); status = BSP_JOY_Init(JOY_MODE_EXTI); if (status != IO_OK) { BSP_LCD_SetBackColor(LCD_COLOR_WHITE); BSP_LCD_SetTextColor(LCD_COLOR_RED); BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize()- 95, (uint8_t *)"ERROR", CENTER_MODE); BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize()- 80, (uint8_t *)"Joystick cannot be initialized", CENTER_MODE); } if (status == IO_OK) { Joystick_SetCursorPosition(); } while (1) /* pull for USER button in GPIO mode */ { if (status == IO_OK) { if (MfxExtiReceived == 1) { MfxExtiReceived = 0; ITstatus = BSP_IO_ITGetStatus(JOY_ALL_PINS); if (ITstatus) { /* Get the Joystick State */ JoyState = BSP_JOY_GetState(); Joystick_SetCursorPosition(); } BSP_IO_ITClear(); /* poll if joystick is still pressed until it is released*/ while ( BSP_JOY_GetState() != JOY_NONE) { Joystick_SetCursorPosition(); HAL_Delay(5); } } } if(CheckForUserInput() > 0) { return; } HAL_Delay(5); } }
/** * @brief Joystick Gpio demo * @param None * @retval None */ void Joystick_demo (void) { uint8_t status = 0; Joystick_SetHint(); status = BSP_JOY_Init(); if (status != HAL_OK) { BSP_LCD_SetBackColor(LCD_COLOR_WHITE); BSP_LCD_SetTextColor(LCD_COLOR_RED); BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize()- 70, (uint8_t *)"ERROR", CENTER_MODE); BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize()- 55, (uint8_t *)"Joystick cannot", CENTER_MODE); BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize()- 40, (uint8_t *)"be initialized", CENTER_MODE); } while (1) { if (status == HAL_OK) { /* Get the Joystick State */ JoyState = BSP_JOY_GetState(); Joystick_SetCursorPosition(); } if(CheckForUserInput() > 0) { return; } HAL_Delay(6); } }