Skip to main content
Associate
April 15, 2025
Question

Text not showing after enabling peripherals (CAN/UART) on NUCLEO-H503RB + GFX01M2

  • April 15, 2025
  • 1 reply
  • 1179 views

I'm working on a project using TouchGFX Designer v4.25.0 with the NUCLEO-H503RB board and GFX01M2 display module. The firmware is based on STM32Cube FW_H5 V1.5.0 and V3.0.6 on the touchGFX project version

The main idea of the project is to communicate by CAN and to display the information received in a text on the screen.

Here's is the issue: when I enable peripherals like CAN, UART1 or UART2 via STM32CubeMX, and generate the code, text stops displaying on the screen.Although the rest of the graphical elements are displayed. If i comment out the Init functions, the text show up correctly.

This are the things i've test so dar 

  • I tried enabling "Mapped Text Storage Format" in TouchGFX as a workaround. It causes a HardFault in this function -->  touchgfx::ConstFont::find(unsigned short)

 

 
  • I also tried using vector fonts instead of raster ones, but the issue persists.

  • I tested with different STM32Cube FW_H5 versions, but the problem remains the same.

It feels like there's a memory conflict between the peripheral initializations and how TouchGFX stores or accesses text/fonts. Maybe the memory layout gets affected when enabling these peripherals?

Has anyone experienced something similar with this board/setup?

Any suggestions on what I can try ?

Thanks!

 

 

1 reply

Ozone
Principal
April 15, 2025

> Maybe the memory layout gets affected when enabling these peripherals?

No, I think it is the design and timing of your application.
Probably the time spent in interrupt context (UART and CAN interrupts).
I hope you are aware that "context" also includes callbacks.

ChippieAuthor
Associate
April 15, 2025

However, I haven't actually implemented or used any communication logic yet 
I’ve only generated the code via CubeMX  after enabling CAN on the .ioc
I haven’t written any callbacks or even started transmitting/receiving data. So no communication is taking place, and no interrupt or callback from those peripherals is being executed at runtime.

The issue happens immediately after code generation and flashing.

P.D: Curiously, if I enable USART3 or I2C1/2, the problem does not happend and the text show up correctly

 

Ozone
Principal
April 15, 2025

Profile your application.