
Code commenté du projet LED
Dependencies: BSP_DISCO_F746NG
hal_stm_lvgl/touchpad/touchpad.c
- Committer:
- treina
- Date:
- 2022-06-16
- Revision:
- 6:72febbe3ea91
- Parent:
- 5:071136c3eefa
File content as of revision 6:72febbe3ea91:
/** * @file indev.c * */ /********************* * INCLUDES *********************/ #include "hal_stm_lvgl/tft/tft.h" #include "lvgl/lvgl.h" #include "stm32f7xx.h" #include "stm32746g_discovery.h" #include "stm32746g_discovery_ts.h" /********************* * DEFINES *********************/ /********************** * TYPEDEFS **********************/ /********************** * STATIC PROTOTYPES **********************/ static void touchpad_read(lv_indev_drv_t *drv, lv_indev_data_t *data); /********************** * STATIC VARIABLES **********************/ static TS_StateTypeDef TS_State; /********************** * MACROS **********************/ /********************** * GLOBAL FUNCTIONS **********************/ /** * Initialize your input devices here */ void touchpad_init(void) { BSP_TS_Init(TFT_HOR_RES, TFT_VER_RES); static lv_indev_drv_t indev_drv; /*Descriptor of an input device driver*/ lv_indev_drv_init(&indev_drv); /*Basic initialization*/ indev_drv.type = LV_INDEV_TYPE_POINTER; /*The touchpad is pointer type device*/ indev_drv.read_cb = touchpad_read; lv_indev_drv_register(&indev_drv); } /********************** * STATIC FUNCTIONS **********************/ /** * Read an input device * @param indev_id id of the input device to read * @param x put the x coordinate here * @param y put the y coordinate here * @return true: the device is pressed, false: released */ static void touchpad_read(lv_indev_drv_t *indev, lv_indev_data_t *data) { /* Read your touchpad */ static int16_t last_x = 0; static int16_t last_y = 0; //BSP_LED_Toggle(LED1); BSP_TS_GetState(&TS_State); if(TS_State.touchDetected) { data->point.x = TS_State.touchX[0]; data->point.y = TS_State.touchY[0]; last_x = data->point.x; last_y = data->point.y; data->state = LV_INDEV_STATE_PR; } else { data->point.x = last_x; data->point.y = last_y; data->state = LV_INDEV_STATE_REL; } }