Loading...
 
Skip to main content

System Workbench for STM32


Touch support after screen rotation F429

Hey,

I try to run the VSREEN_Sample of Segger on the STM32F429Disc1.
So i managed to rotate the screen to landscape and the demo is displaying right. But now I have no touc support anymore.

If I only print a Messagebox I can push the button on another position of the display. So I think the calculatet positions are wrong.

Do you have any helpt?

Thanks 😊

Tunisia
I think just swapping X and Y can solve the issue

Hey,

I swapped X and Y in the driver. But it does not solved the problem.


Tunisia

I have developped a small code testing this : not clean but works for me 😉

intialization
Copy to clipboard
BSP_TS_Init(320, 240); // instead of 240, 320

stm32f429i_discovery_ts.c
Copy to clipboard
/** * @brief Returns status and positions of the touch screen. * @param TsState: Pointer to touch screen current state structure */ void BSP_TS_GetState(TS_StateTypeDef* TsState) { static uint32_t _x = 0, _y = 0; uint16_t xDiff, yDiff , x , y, xr, yr; TsState->TouchDetected = TsDrv->DetectTouch(TS_I2C_ADDRESS); if(TsState->TouchDetected) { TsDrv->GetXY(TS_I2C_ADDRESS, &y, &x);//instead of &x, &y // ...... }

Thanks for your help.

I am working with the driver delivered by ST. I can switch the variables for x and y. In your example you can define how much pixel the touch screen have. In the driver I can not find such a definition.