Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi I am using TouchGFX version of 4.19.1 and I am working without FreeRTOS. I am calling MX_TouchGFX_Process() in the main while(1) loop and calling HAL::getInstance()->vSync(), OSWrappers::signalVSync() in the display TE interrupt line.Whenever I call MX_TouchGFX_Process() in the main while(1) loop, it is taking 50 ms to come out from the MX_TouchGFX_Process() function. Because of this 50 ms delay display update is sluggish.Could you please help me to solve this issue.Thanks and Regards,Bala
..
How do we know if our hand is on the button? e.g; If our hand is on a button, the led is always on, if we raise our hand over that button, the led turns off.
Hi thereIs there a way to have one ID with different Fonts?I don't see the point in generating the same string multiple times with different fonts. That is event cumbersome with the translation offices who have to translate the same string multiple times.We use a lot of the same strings in different places in the GUI.For example I get a String ID from a TCP/PI packet and want to display it on the screen.The sender of the packet does not care which font / typography is used, but I do, so with our old GUI library I could do something like "show_text(TEXT_ID, FONT_A_30px)"How can I do that with TouchGFX? Is there a workaround?Thanks,jimmii
Hello,I am working on a big project where the debugger from STM32CubeIDE stopped to work unfortunately but the code can compile and run in the other hand. The project use a touchscreen with TouchGFX and vendor code template with FreeRTOS layer.To understand where the problem comes from, I have strongly lightened my code by keeping only 2 screens and the minimum of code possible but the debugger still does not work.When I launch the debugger, it gets stuck on a Hard Fault in FreeRTOS that you can see in the image below. I am wondering if the debugger needs to use MCU's memory to run ? If so, maybe it is the cause of my problem as I can see the following memory usage as below:Do you have any idea why the debugger doesn't work?It's frustrating because my code works but the debugger does not...Best regards,Savanne
If so, can you tell me what LCD you targeted?
I'm spinning a Texture Mapper Animation around the Z Angle. I want it to spin infinitly, but since it can only spin to a given Angle, I have to reset the Z Angle to 1, once the Animation is finished and start it again. This causes a visible jump in the Animation. I could let the Z Angle count up to Infinity, but I'm worried that this will cause problems.
I need like as below videohttps://www.youtube.com/watch?v=evydnUSNiyg&ab_channel=%E6%8A%80%E8%A1%93%E8%80%85Y.%EF%BC%A1%E3%81%AE%E6%8C%91%E6%88%A6
Hello,On my project I want to change font of a TextArea according to some value.First of all I created a topography to apply in TouchGFX.I guess this is the good way to do.Secondly I wondering how I can apply it on my TextArea ? How find the typography name and how to apply it ? I tried something like that :Cont_LM_Simple_2_txt_lift_current_kg.setTypedText(touchgfx::TypedText());But I didn't not managed to find how to set up my new typography.[EDIT] Code insert
Hello - We are developing a TouchGFX project using a very similar display to that used on the X-NUCLEO-GFX01M2 AZ1 eval (board #MB1642). According to the ST BOM (attached), the LCD is Xinli PN TCXD022IBLON-5. Unfortunately, I can't find a datasheet anywhere online and I need it to figure out particular signals in our wiring. ST must have a copy of that document for internal development of the hardware and software on X-NUCLEO-GFX01M2 AZ1 (MB1642). Please help. Thank you.
My code needs to react to button press, button down and button released. But only one of these callbacks can be selected in touchgfx designer...
I am designing counter with button click. When long press button countter will increment fast, if normal press to button counter will normal. But when I hold pressed button, there isnt anything. How do we do makes it? When I debug code while I hold button, it dont call button increment functionvoid Main_MenuView::time_increment() { if (g_buzzer_flag) buzer_on(); time_counter++; if (time_counter > 500) time_counter = 500; Unicode::snprintf(textArea5Buffer, TEXTAREA5_SIZE, "%d", time_counter); textArea5.invalidate(); }
Hello, I am making a sensor that uses a camera, and I would like to perform a simple mathematical operation on image data while it is still reading out.My algorithm is very linear and does not need all data, so in theory, I should be able to do that.(in FPGA it is extraordinary simple to do in real time)My main concern is that I will be loading AHB bus while DMA is copying data from DCMI to SRAM. If I set DMA with highest priority, as far as I understand I could get DMA overrun, since ARM core access priority is larger than DMA?Original idea is to use HSYNC interrupt to count lines, and when I get a new line copied, I could start to do mathematical operations to that line in SRAM, while DMA will be copying the second line. I also get a bit of horizontal blanking time in which DMA is idling.My Cortex-M33 will be running at 160MHz, and camera will be running at 60MHz (theoretical maximum is 64MHz (Frequency ratio DCMI_PIXCLK/f HCLK = 0.4). I am also running 10b of data, meaning DMA
whenever I change from one screen to another there is a lag during appearing of wildcard. First the screen is loaded then the wildcard appears after like 500ms
I mean once i connect the LCD to fmc gpios (without programming it just connecting it) i get 0 as the the output of my read,does anyone have similar problem? or have an idea about it ?Thanks,
Hi, I'm using a container with a text area with no wildcard for printing different strings, it works fine with text.setTypedText(TypedText(T_XX)); according to the if value. But sometimes it needs to print no string, something like text.setTypedText(NULL); but I can't do this, it doesn't accept NULL parameter and using wildcard, it prints the previous value of text area. How to clean the text area?
Hello,basically I've got myself STM32WB55 evaluation board and NUCLEO-GFX01M2 display module, to test out the TouchGFX Designer.And right at the start I got a problem I can not solve myself. After I've created a simple project in Designer and flashed it on board, I tried to alter the code and opened the project in STM32CubeIDE, buildet it, and flashed again...and got a surprising picture.What do I do wrong here?Pic1: Designer flash.Pic2: CubeIDE flash.Thanky you!Best regards
Hello everyone,is it possible to use a display that only supports Data enable mode?If yes, how to configurate the LTDC for this mode? I use the STM32H7B3-dk board and already modified the display. I connected a display that supports the DE Sync mode, but I have another display that only supports DE mode. The LTDC documentation does not help. Thank you very much
Hi,I am trying to use wingding 3 font...In the touchGFX Designer I can see the character (arrow...) but when running the simulator there is no text area. -Any idea how to solve this issue? - Can we design a special character on touchGFX?Thank you
Hello,I'm working on a TouchGFX GUI and I have some text areas which need to be automatically wrapped on several lines.I'm using Text_guideline.setTypedText(touchgfx::TypedText(guideline)); Text_guideline.setWideTextAction(WIDE_TEXT_WORDWRAP); Text_guideline.resizeHeightToCurrentText();then the text is wrapped on several lines (as expected), but the 2nd line is truncated : its width is equal to that of the first line. I included images with the text "Buona ventilazione" on 2 lines, note that I fully see the second line only when I pad the first one to be wider.Here is my question : How can I fully display each line even if they are wider than the first line, for a line-wrapped text ?Thank you in advance for any help !
I'm running the LTDC_Paint example for a STM32F429i_DISC1 board on CubeIDE. The files in the package do not comprise the .ioc file that could allow to change the uC configuration. Is there a way to re-create this missing file?Thanks for your help!
I am developing a TouchGFX-based firmware and have a trouble with my custom widget when I try to use partial framebuffer strategy.Currently I am using TouchGFX 4.13 on STM32H743 MCU with LTDC.The code of my custom widget class is based on this "QRCode widget" example from TouchGFX documentation:touchgfx::Rect absolute = getAbsoluteRect(); uint16_t* framebuffer = touchgfx::HAL::getInstance()->lockFrameBuffer(); for (int y = invalidatedArea.y; y < invalidatedArea.bottom(); y++) { for (int x = invalidatedArea.x; x < invalidatedArea.right(); x++) { framebuffer[absolute.x + x + (absolute.y + y) * touchgfx::HAL::DISPLAY_WIDTH] data->at(x / scale, y / scale) ? 0x0000 : 0xffff; } }When I use single or double framebuffer everything works fine.When I use partial framebuffer without custom widgets everything works fine.But where I use partial framebuffer with custom widget it is unclear how to determine in draw() methoda) where is current partial framebuffer located in RAM, and
Hi Everyone.I am trying to integrate Bare LCD with stm32f429 Disco board with the help of TouchGFX Documentation and LTDC application notes.In LTDC Application notes, the syncronization pattern generated with the interrupt at Vsync of last line, and swap the frames by using the following function: virtual void backPorchExited() { swapFrameBuffers(); tick(); }I also generate the code from TouchGFX for the integrated LCD of stm32f429 to get some idea about the pattern but it is really very confusing for me to understand. Can anyone please guide me that how can I integrate this LCD with this board.Panel specification is 800*480 resolution.
Hello all, I create a custom container in TouchGfxDesigner and I want to used Dynamic Bitmap Cache and Memory:class Knob : public KnobBase{public: Knob() { Bitmap::cache(BITMAP_ENTER_1_ID); Bitmap::cache(BITMAP_ENTER_2_ID); pbuf = new uint8_t[1024]; } virtual ~Knob() { Bitmap::cacheRemoveBitmap(BITMAP_ENTER_1_ID); Bitmap::cacheRemoveBitmap(BITMAP_ENTER_2_ID); delete[] pbuf; } virtual void initialize();protected: uint8_t *pbuf;};I cache bitmap and request memory in constructor and release them in destructor. Are there any risks in using it here? I've been worrying about memory leaks.
ST Community highlights – April to June 2026
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.