119 static uint8_t ts_orientation;
120 static uint8_t I2C_Address = 0;
164 uint8_t ts_status =
TS_OK;
183 if(ts_SizeX < ts_SizeY)
192 if(ts_status ==
TS_OK)
195 ts_driver->
Reset(I2C_Address);
198 ts_driver->
Start(I2C_Address);
216 uint8_t ts_status =
TS_OK;
227 gpio_init_structure.
Speed = GPIO_SPEED_FAST;
252 uint8_t ts_status =
TS_OK;
259 #if (TS_MULTI_TOUCH_SUPPORTED == 1) 272 ts_driver->
GetXY(I2C_Address, &(Raw_x[index]), &(Raw_y[index]));
277 Raw_x[index] = Raw_y[index];
291 xDiff = Raw_x[index] > _x[index]? (Raw_x[index] - _x[index]): (_x[index] - Raw_x[index]);
292 yDiff = Raw_y[index] > _y[index]? (Raw_y[index] - _y[index]): (_y[index] - Raw_y[index]);
294 if ((xDiff + yDiff) > 5)
296 _x[index] = Raw_x[index];
297 _y[index] = Raw_y[index];
301 TS_State->
touchX[index] = _x[index];
302 TS_State->
touchY[index] = _y[index];
304 #if (TS_MULTI_TOUCH_SUPPORTED == 1) 307 ft6x06_TS_GetTouchInfo(I2C_Address, index, &weight, &area, &event);
310 TS_State->touchWeight[index] = weight;
311 TS_State->touchArea[index] = area;
337 #if (TS_MULTI_TOUCH_SUPPORTED == 1) 339 ts_status = BSP_TS_Get_GestureId(TS_State);
347 #if (TS_MULTI_TOUCH_SUPPORTED == 1) 355 uint32_t gestureId = 0;
356 uint8_t ts_status =
TS_OK;
359 ft6x06_TS_GetGestureID(I2C_Address, &gestureId);
399 #if (TS_MULTI_TOUCH_SUPPORTED == 1) 418 TS_State->
touchX[index] = 0;
419 TS_State->
touchY[index] = 0;
420 TS_State->touchArea[index] = 0;
422 TS_State->touchWeight[index] = 0;
449 gpio_init_structure.
Speed = GPIO_SPEED_HIGH;
#define FT6206_TOUCH_EVT_FLAG_CONTACT
__weak void BSP_TS_INT_MspInit(void)
Initializes the TS_INT pin MSP.
#define FT6206_TOUCH_EVT_FLAG_PRESS_DOWN
uint8_t BSP_TS_ITConfig(void)
Configures and enables the touch screen interrupts.
This file contains definitions for STM32F769I-Discovery LEDs, push-buttons hardware resources...
TS_StateTypeDef Define TS State structure.
#define FT_6206_MAX_HEIGHT
char * ts_event_string_tab[TOUCH_EVENT_NB_MAX]
Table for touchscreen event information display on LCD : table indexed on enum TS_TouchEventTypeDef i...
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
#define FT6206_GEST_ID_MOVE_UP
#define FT6206_GEST_ID_ZOOM_OUT
IRQn_Type
STM32F7xx Interrupt Number Definition, according to the selected device in Library_configuration_sect...
void(* GetXY)(uint16_t, uint16_t *, uint16_t *)
#define TS_MAX_NB_TOUCH
With FT6206 : maximum 2 touches detected simultaneously.
#define TS_INT_GPIO_CLK_ENABLE()
#define TS_INT_PIN
TS_INT signal from TouchScreen when it is configured in interrupt mode GPIOI13 is used for that purpo...
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
uint8_t BSP_TS_Init(uint16_t ts_SizeX, uint16_t ts_SizeY)
Initializes and configures the touch screen functionalities and configures all necessary hardware res...
GPIO Init structure definition.
uint16_t(* ReadID)(uint16_t)
uint8_t(* DetectTouch)(uint16_t)
uint8_t BSP_TS_GetState(TS_StateTypeDef *TS_State)
Returns status and positions of the touch screen.
uint16_t touchY[TS_MAX_NB_TOUCH]
#define FT6206_GEST_ID_MOVE_RIGHT
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
#define FT6206_GEST_ID_MOVE_DOWN
#define FT_6206_MAX_WIDTH
This file contains the common defines and functions prototypes for the stm32f769i_discovery_ts.c driver.
#define FT6206_GEST_ID_ZOOM_IN
#define TS_I2C_ADDRESS
TouchScreen FT6206 Slave I2C address.
char * ts_gesture_id_string_tab[GEST_ID_NB_MAX]
Table for touchscreen gesture Id information display on LCD : table indexed on enum TS_GestureIdTypeD...
void(* EnableIT)(uint16_t)
TS_DrvTypeDef ft6x06_ts_drv
#define FT6206_GEST_ID_NO_GESTURE
#define FT6206_TOUCH_EVT_FLAG_NO_EVENT
#define FT6206_TOUCH_EVT_FLAG_LIFT_UP
#define GPIO_MODE_IT_FALLING
#define FT6206_GEST_ID_MOVE_LEFT
uint16_t touchX[TS_MAX_NB_TOUCH]