Skip to main content
MSale
Associate III
July 12, 2019
Question

I have a problem in integrating the STM32ubeIDE to use it with both the STM32f769i Discovery board and TouchGFX.

  • July 12, 2019
  • 15 replies
  • 3407 views

I managed to compile a project without error s but every time i flash it the display become black.

This topic has been closed for replies.

15 replies

Martin KJELDSEN
Principal III
July 12, 2019

Hi @Community member​,

Is your application running? Are you in a hardfault? Let us know!

/Martin

MSale
MSaleAuthor
Associate III
July 12, 2019

Hi,

Yes its in hardfault.exactly at MX_QSPI_Init.

Mahmoud

Anders Nedergaard PETERSEN
Senior II
July 15, 2019

Hi @Community member​ 

It could be that the configuration for QSPI is not correctly set up, have you done the configuration or have you used a template as a starting point? e.g. the Application Template from TouchGFX Designer?

/Anders

MSale
MSaleAuthor
Associate III
July 15, 2019

Hi @Anders Nedergaard PETERSEN

I solved the QSPI problem. i never tried to use the template but i just tried it now and when i open the IOC file with the cube ide i got this message "Invalid Input: Must be IFileEditorInput"

Mahmoud

MSale
MSaleAuthor
Associate III
July 16, 2019

I followed the steps from your online video on how to integrate STM32f746G with cubeide on youtube and modified the configuration using the informations for my stm32f769 board from your website touchgfx.zendesk. after debugging i am stuck in DSI_IO_WriteCmd(2,lcdregdata2) which is inside MX_DS_Init() which is from OTM8009a_Init().

when i use template i end up with multiple errors.

Mahmoud

MSale
MSaleAuthor
Associate III
October 16, 2019

@NShai.340​ 

Hi,

please make sure that LCD_LL_RESET is uncommented in the below function

void GRAPHICS_HW_Init()

{

   

   

  MX_FMC_Init();

  MX_SDRAM_InitEx();

 /* Configures the LCD reset pin. */

   /* USER CODE BEGIN LCD_reset_pin */

   LCD_LL_Reset();

   /* USER CODE END LCD_reset_pin */

  MX_LCD_Init();

  MX_DSI_Init();

  GPIO::init();

  //Deactivate speculative/cache access to first FMC Bank to save FMC bandwidth

  FMC_Bank1->BTCR[0] = 0x000030D2;

    

}

in the Main.cpp please make sure to use only this functions as some parts of the STM32F769 have some conflicts .

 /* Initialize all configured peripherals */

  MX_GPIO_Init();

  MX_CRC_Init();

  MX_QUADSPI_Init();

  MX_SPI2_Init();

  MX_UART5_Init();

 /* USER CODE BEGIN 2 */

if you want to use any thing later you can check it so you dont have problem but this will solve the touch GFX problem

Regards

Mahmoud

NShai.340
Associate II
October 20, 2019

I have did above all , but still getting the black screen. Could you please tell me with what you did to in the QSPI part to fix it.

This is also hinted here in this link https://touchgfx.zendesk.com/hc/en-us/articles/360020208091-Configuring-STM32F769I-DISCO in Add missing BSP files and update Linker script section. It asks to add QSPI start and finish part in the stm32f769xx_flash.icf file of IAR workbench .

I think, STM32CubeMX have this STM32F769NIHX_RAM.ld equivalent to stm32f769xx_flash.icf . How do I add QSPI part in STM32F769NIHX_RAM.ld ?

Thanks and Best Regards

Nouman

FSTKMARO
Associate II
December 24, 2019

Note that the article that you posted falls short of setting up the board. As @Community member​ mentioned, it is key to ensure that the reset function is not commented. This does not seem to be a problem with the new version of TGFX and CubeMX. CubeMX calls for a bunch of init functions that often hangs the board. I have been fighting this for a few weeks and just now was able to fix it.

For the BSP drivers for touch screen, it is as simple as copying the Component and STM32F769Discovery folder from the BSP folder in the firmware package. You need to add those to the Path and Symbols in CUBEIDE. The display should turn on now without any trouble but the image may not be correct. The command size in the DSI init function has to be changed to 800 as does the screen width in the TouchGFX init function. All of those should work. The QSPI mentioned in the article that you linked does not seem to be necessary as I have my board running without modifying the linker script file or adding code to my main other than the BSP_Init() and BSP_ENABLEMEMORYMAPPEDmode() calls. I do have a problem where my animations (fades and movements) are not smooth. It is almost as if the screen cannot refresh fast enough. This may very well be an issue with the QSPI implementation in my files. I suggest you start with a new project and follow @Community member​ 's advise. Dont get hung with the article that you posted as it is not entirely correct.

Good luck.