Skip to main content
DLips.1
Associate
January 12, 2020
Solved

White screen on stm32f429i-disc1display

  • January 12, 2020
  • 51 replies
  • 12788 views

Hi all,

I am trying to configure my stm32f429i-disc1 with the lates CubeMX 5.5 and TouchGfx 4.13. I have followed the instructions from here: https://touchgfx.zendesk.com/hc/en-us/articles/360010921760-TouchGFX-HAL-Development, but my display is still all white (there should be red background with simple 'hello world' string on it).

The project compiles and there is also 1s_cnt which increments properly. I've tried to debug the project and noticed that program enters inside functions:

  • void StartScreenPresenter::activate()
  • void StartScreenView::setupScreen()

on startup but only once.

Both the board and the cable are ok, because I can flash MCU with other project and then screen works fine.

Have you got any ideas what I am doing wrong?

This topic has been closed for replies.
Best answer by Cody

If anyone is still having troubles with the display on the STM32F429 Discovery I have a working CubeIDE project. It is messy because I only intended to use it just for testing and I only configured the hardware that was need to get the display working. Hope this helps.

51 replies

Martin KJELDSEN
Principal III
January 13, 2020

Can you try breaking inside the LTDC interrupt handler in TouchGFX Generated HAL? This is what drives TouchGFX forward. It must be called around every VSYNC event,

/Martin

Zui
Senior
January 13, 2020

having same issue (on stm32f746g, and display stay blach tho), i tryed with that interrupt, but is never called...

Martin KJELDSEN
Principal III
January 20, 2020

That's your issue. No interrupt, no rendering.

/Martin

DLips.1
DLips.1Author
Associate
January 13, 2020

@Martin KJELDSEN​  I can brake inside:

  • void HAL_LTDC_IRQHandler(LTDC_HandleTypeDef *hltdc) and then:
  • void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc)

After that state is HAL_LTDC_STATE_READY but the error code is HAL_LTDC_ERROR_TE. This error is set only once at the very beginning.

@Zui​ Have you enabled LTDC global interrupt in CubeMX?

Zui
Senior
January 13, 2020

i have LTDC global interrupt enabled and LTDC global error interrupt NOT enabled

Martin KJELDSEN
Principal III
January 14, 2020

Do you have code generation enabled ("Call HAL methods")? For LTDC Global interrupt (also in nvic)

JMill
Associate
January 16, 2020

I'm having the same problem; blank screen using CubeIDE 1.2.1, TouchGFX 4.13.0

  • LTDC global interrupt is enabled.
  • void HAL_LTDC_IRQHandler(LTDC_HandleTypeDef *hltdc) is called periodically which also calls
  • void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc)

When I use TouchGFX generator as a standalone, I'm able to sucessfully create, load and execute an application. But this does not allow for debugging. I'm trying to expliot the fact that there is something running and trying the figure out whats different. Any help on this matter would be appreciated

Martin KJELDSEN
Principal III
January 20, 2020

Hi,

Are you getting your setupScreen() method called in your view? If the application isn't ticked properly, then nothing will be rendered.

/Martin

JMill
Associate
January 20, 2020

screenSetup is an empty function. Is that right?

void Screen1ViewBase::setupScreen()
{
 
}

JMill
Associate
January 17, 2020

In CubeMX 5.4 Graphics->PlatformSetting, there was a way to connect up, CSX, WRX, RDX and the SPI signals. There is no such mechanism in CubeMX 5.5. And there seems to be no hooks to easily add the code. Is there a driver missing ???

Martin KJELDSEN
Principal III
January 22, 2020

What exactly are you trying to do? What code would you like to "add" ? The documentation explains where to transfer framebuffer to display over e.g. spi.

Cody
Visitor II
January 17, 2020

I'm having the same problem.

Martin KJELDSEN
Principal III
January 20, 2020

Which problem is that? Black screen?

Cody
Visitor II
January 20, 2020

Yes, I have a black screen when using FreeRTOS and a green screen when I use No OS.

DLips.1
DLips.1Author
Associate
January 18, 2020

@Martin KJELDSEN​  Hey guys from ST/TouchGFX, can you check this issue and update a document I mentioned in my first comment? It looks like many people have the same problem.

Martin KJELDSEN
Principal III
January 20, 2020

It's okay the setupscreen of a view is entered only once, that's the whole idea.

What is your display interface? LTDC? Check the CFBAR register to see what the LTDC thinks is the current framebuffer address.

Does your memory hold what you think? Try having a red box or something similar and check that the content of the framebuffer is correct.

/Martin

Cody
Visitor II
January 19, 2020

@Martin KJELDSEN​  Martin, I have the LTDC global interrupt enable for LTDC in Generate IRQ handler and Call HAL handler. The interrupt is getting called in TouchGFXGeneratedHAL at line 25 and 505 (my display is 800x480 and Accumulated Active Height is 506). That was with FreeRTOS. I also tried with no OS and I get the same results except my display is green.

Martin KJELDSEN
Principal III
January 20, 2020

Okay, green and what did you expect the screen to be? Green is not random data, so it may be a display configuration issue. Check the framebuffer memory to see if the contents are what you expect - If it is, then the display may be configured incorrectly.

JMill
Associate
January 20, 2020

Martin KJELDSEN (ST Employee) - It might be easier if you could create a working "Hello world" project and stuff it here. Sounds like it'd only take you a few minutes. Would that be possible? using CubeIDE 1.2.1, TouchGFX 4.13.0 (see my comment on CubeIDE 1.2.1)

regards,

John

DLips.1
DLips.1Author
Associate
January 20, 2020

It would be really helpful :)

JMill
Associate
January 20, 2020

Or better yet, http://ge.tt/4W1PCo03

 This is a clean project built with the cubeide 1.2.1 and touchgfx 4.13 for the 429-DISC1 dev board

Only the call to the graphics processing loop has been added to the default task.

Myous.1
Visitor II
January 21, 2020

i've tried building this , it builds with no errors , but it gives a white screen when i upload it to my board.

Myous.1
Visitor II
January 21, 2020

Same problem here , STM32CUBEIDE v1.2.1 , TouchGFX v4.13 , using CubeMX v5.5 , i have LTDC global interrupt enabled and IRQ enabled in the Code generation part of the NVIC , i've configured the IOC file the same as in the guide , added MX_TouchGFX_Process to the default task , and still getting a white screen.

Martin KJELDSEN
Principal III
January 21, 2020

Did you do any debugging? Is the application running? Are you receiving your interrupts (these are what drive the touchgfx rendering cycle - No interrupt = no pixels)

Myous.1
Visitor II
January 22, 2020

i've inserted a break point inside the LTDC IRQ , it seems to be firing and calling this handler "HAL_LTDC_IRQHandler(&hltdc);"