/** * @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); } }
/** * @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 demo * @param None * @retval None */ void Joystick_demo(void) { static uint16_t xPtr = 12; static uint16_t yPtr = 92; static uint16_t old_xPtr = 12; static uint16_t old_yPtr = 92; uint8_t status = 0; Joystick_SetHint(); status = BSP_JOY_Init(JOY_MODE_GPIO); 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); } while (1) { if (status == IO_OK) { /* Get the Joystick State */ JoyState = BSP_JOY_GetState(); switch(JoyState) { case JOY_UP: if(yPtr > 92) { yPtr--; } break; case JOY_DOWN: if(yPtr < (BSP_LCD_GetYSize() - 12 - 11)) { yPtr++; } break; case JOY_LEFT: if(xPtr > 12) { xPtr--; } break; case JOY_RIGHT: if(xPtr < (BSP_LCD_GetXSize() - 8 - 11)) { xPtr++; } break; default: break; } BSP_LCD_SetBackColor(LCD_COLOR_WHITE); BSP_LCD_SetTextColor(LCD_COLOR_BLUE); if(JoyState == JOY_SEL) { BSP_LCD_SetTextColor(LCD_COLOR_RED); BSP_LCD_DisplayChar(xPtr, yPtr, 'X'); } else if(JoyState == JOY_NONE) { BSP_LCD_SetTextColor(LCD_COLOR_BLUE); BSP_LCD_DisplayChar(xPtr, yPtr, 'X'); } else { BSP_LCD_SetTextColor(LCD_COLOR_WHITE); BSP_LCD_DisplayChar(old_xPtr, old_yPtr, 'X'); BSP_LCD_SetTextColor(LCD_COLOR_BLUE); BSP_LCD_DisplayChar(xPtr, yPtr, 'X'); old_xPtr = xPtr; old_yPtr = yPtr; } } if(CheckForUserInput() > 0) { return; } HAL_Delay(5); } }