cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFXDesigner - UI non responsive on STM32F469i-Discovery

robinbobin1979
Associate II

Hello!

I'm using TouchGFXDesigner 4.13.0 to flash my STM32F469i-Discovery board. Everything runs as intended on the simulator. But on the board the UI is non responsive, Everything looks as intended, but no button can be clicked, nothing.

Could you give me a hint what am I missing, please?

9 REPLIES 9
Martin KJELDSEN
Chief III

Hi @robinbobin1979​,

Have you tried debugging? Is the application actually running? If you're using an OS then maybe check your stack/heap sizes and if not then the size of your cstack could be too low. Just a few things to try.

/Martin

robinbobin1979
Associate II

Hi, Martin!

Thanks for taking time to answer. Debugging in STM32CubeIDE showed the app crashes right after launch. Stack / heap sizes are 2000. Will be looking further.

LKamm.1
Associate

Hi,

Same problem here! Working with a stack size of 4096. I can upload old programs to the board, but even if I just change a text field, the UI is not working anymore. There are no errors or warnings after debugging.

KHUYN.1
Associate

​Hi Martin

I had the same problem here.

Here is what I have found

  • For GUI program created by TouchGFX (by any version), touch panel does not work

           For GUI program created by STemWin, touch panel works (I flashed the STemWin demo program from STM32CubeF4, and confirmed)

  • This non responsive UI issue only happens on STM32F469i-discovery's version 32F469iDISCO/03.

            I confirmed other version 32F469iDISCO/01 or /02, the UI works with GUI program created by TouchGFX

I consider there might be a compatibility issue in touch panel driver used in TouchGFX application template, when evaluation board is upgraded

Hi robinbobin1979 , LKamm.1

Could you let us know, which board version are you using?

Best Regards

Long

LKamm.1
Associate

Hi,

Thank you for your fast response. I am using the /01-0 Version. ​Does anybody know the exact configurations of the .ioc-file which are needed for a running Board?

Best Regards​

Lukas​

KHUYN.1
Associate

​Hi Lukas

If you use other flash programming tool, you need to do flash loader setting

For example with ST-Link Utility, you need to set it to N25Q128A_STM32469I-DISCO.

If you use TouchGFX designer, all you need to do is running "Run Target".

In my case, it works well with  /01-0 Version.

Hope it answers your question

Long

Thanks for the info. I'm using /03-0.

robinbobin1979
Associate II

I managed to do some debugging and that's what I found (not much, unfortunately). I didn't manage to run with a debugger, so I can't give a stacktrace.

`OTM8009TouchController::init()` invokes `BSP_TS_Init()` with a correct screen size. `BSP_TS_Init()`'s body has the line

ft6x06_ts_drv.ReadID(TS_I2C_ADDRESS, kuku) == FT6206_ID_VALUE

which evaluates to `FALSE`, as the return value of `ft6x06_ts_drv.ReadID()` is zero, so `BSP_TS_Init()` returns `TS_DEVICE_NOT_FOUND`.

As for `ft6x06_ts_drv.ReadID()`, it seems to be a pointer to `ft6x06_ReadID()` defined in `target\bsp\source\vendor\Components\ft6x06\ft6x06.c`. When `ft6x06_ReadID()` is invoked finally `I2C_WaitOnMasterAddressFlagUntilTimeout()` from `target\bsp\source\platform\hal\mcu\stm32f4cube\STM32F4xx_HAL_Driver\stm32f4xx_hal_i2c.c` gets invoked and the line

__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET

evaluates to `TRUE` making `I2C_WaitOnMasterAddressFlagUntilTimeout()` return `HAL_ERROR`.

Maybe this info might shed some light on what's going on.

robinbobin1979
Associate II

Solved.

We managed to find out that the TS_I2C_ADDRESS define in target\bsp\source\vendor\STM32469I-Discovery\stm32469i_discovery.h must be 0x70 and not 0x54.

That's for STM32F469i-Discovery /03-0.