Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi, ST's discovery boards usually have debug pin headers, but interestingly ST has removed it in the STM32F746NG-DISC board. I want to debug all LTDC signals by connecting to the oscilloscope. How do I go about that? Please help. Thank you.
Hi, There are a lot of examples about TouchGFX with Partial Frame Buffer. But all of them with SPI or I2C LCDs. Even the TouchGFX support page:LinKI want to know how should I initialize TouchGFX with partial frame buffer by LTDC peripheral. I already did with SPI LCDs and I used this function:void touchgfxDisplayDriverTransmitBlock(const uint8_t* pixels, uint16_t x, uint16_t y, uint16_t w, uint16_t h) { isTransmittingData = 1; LCD_drawBuffer((uint16_t*)pixels, x, y, w, h); DisplayDriver_TransferCompleteCallback(); }In this code function LCD_drawBuffer is defined in SPI LCD library.How should I do for LTDC?Thank you.
Does anyone have an example of how to use TouchGFX's I2C.hpp and I2CTouchController.hpp?I could not find any in the TouchGFX docs.My LCD does not have an ST-provided driver, so I am trying to use HAL_I2C_Mem_Read to implement the sampleTouch function.
Hi Community,I am working on custom Touch GFX project. I want to generate the project from STM32CubeIDE / STM32CubeMX by including Touch GFX in it and get turn ON the display.
I want to create a drop-down list of multiple fonts among which users can select and implement in a given/selected textarea. can anybody share some insight into implementing this task?Regards
I'm testing the 14-bit (or 16-bit) output from ADC to display using LTDC module.There is L8 mode among LTDC input types, so I checked the ADC output by normalizing it to 8-bit.But, what i really need is 14-bit (or 16-bit) gray output.I want to know how to set LTDC to output 14-bit gray data.
Is there a guide/tutorial that shows how to use it? How, for example, to invoke a specific "Resource ID" in order to fill a TextArea?Thanks
Is there any problem with LCD driving with HYPER RAM(OCTASPI) + FLASH(QUADSPI) setting?
Hi, I am using TouchGFX 4.16.1. Could you suggest a tutorial or some other material to add a second language to my project. Thank you.
..
I want to verify that the STM32L4R9 discovery kit can work in DSI video mode so that I can port the application to use a display driver that does not have a graphics buffer. I started with the TouchGFXWatch example and have that working. I then used TouchGFX Generator to change the Display Interface to Parallel RCB (LTDC) (per advice from the forum). This resulted in the initial display but no update. I then changed DSIHost to Video Mode which resulted in stripy noise being displayed. I believe I am using the latest versions of all the tools: TouchGFX 4.19, CubeMX 6.5.0, STM32CubeIDE 1.8.0.My forum reading suggests that this is hard, but possible. Can anyone enlighten me on what I need to modify under the hood to get this to work?
Hi,I'm really struggling to implement easily a GPIO function, even with the tutorials provided.I'm trying to use the GPIO class set (GPIO_ID id), but how ?It's not very well documented, there are no examples provided.https://www.touchgfx.com/documentation/html/classtouchgfx_1_1_g_p_i_o.htmlI'm trying to set a GPIO pin (I1) to HIGH via the press of the button called "button_pi1" on my UI.I'm calling a new virtual function called "toggle_gpio".Here is the code generated in screen1viewBase.cpp :/*********************************************************************************/ /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ /*********************************************************************************/ #include <gui_generated/screen1_screen/screen1ViewBase.hpp> #include <touchgfx/Color.hpp> #include "BitmapDatabase.hpp" #include <texts/TextKeysAndLanguages.hpp> screen1ViewBase::screen1ViewBase() : buttonCallback(t
Hi everyoneI was Looking for a new original TFT LCD 4.3 inch and I came across this one:AT043TN25 V.2 by INNOLUX. I have uploaded datsheet. This LCD's interface is RGB888. and my PROBLEM is that in pin assignment There are not HSYNC and VSYNC pins. How can I connect this LCD to LTDC peripheral on my STM32.Thanks in advance
I need to show a pop-up window when a particular condition satisfies. I created a model window and showed it when the condition satisfies. However, when I have multiple screens, do I have to create this model window each and every screen? Is there a way to create it once and show it no matter whatever screen is currently active? I don't want to change the screen but show the pop-up in current screen itself.
I am integrating a TSC2007 touch controller on a Nucleo H7A3 board. I have created a simple test screen with TouchGFX. I also created a driver that senses touch from the TSC2007 via a GPIO pin and added the X and Y state values to the STM32TouchController:sampleTouch function. When the display button is touched it calls the sampleTouch function but hangs there. If I put a break in that function and then run after the button tap it works as expected. I think it has to do with the touch detect pin being active before the first detect is finished processing. Is there a way to check that the first button tap has been processed before enabling the touch sense again?
I have an STM32H745I-disco board. I created a TouchGFX project for it (with some simple graphical objects). Then I imported it to CubeIDE. At first, the project could be built without error. But after enabling an ADC module I got a linker error undefined reference to `HAL_ADC_Init'.TouchGFX version: 4.18.1STM32CubeIDE version : 1.8The project is attached.
When I put a long text in a small text area, the ellipsis doesn't appear, and the text is directly truncated,version is 4.19.1
In TouchGFX 4.19.1, I have the following problem:When I set up a project via designer and then switch the IDE to Keil via CubeMX, the function void TouchGFX_Task(void *argument) { touchgfx_taskEntry(); }vanishes from the file app_touchgfx.c.When I open the file before changing the IDE, the function is there. When I open the file after changing the IDE, it's not there, and it doesn't come back when the TouchGFX Designer is rerun. Of course I can add the function myself but it would be more convenient if it would not be deleted by CubeMX.This problem did not occur in TouchGFX 4.18.Is it a general bug or is there something wrong with my version of the toolchain?
I'm trying to use handleGestureEvent in Screen.But handleClickEvent and handleDragEvent are called correctly, and handleGestureEvent it is never shouted!Should the "fire" of this event in the Screen class be activated in some way. I could not find anything in the documentation of TouchGFXclass ScreenView : public ScreenViewBase { public: // .... // auto handleGestureEvent (const GestureEvent & event) -> void override { ScreenViewBase::handleGestureEvent (event); } auto handleClickEvent (const ClickEvent & event) -> void override { ScreenViewBase::handleClickEvent (event); } auto handleDragEvent (const DragEvent & event) -> void override { ScreenViewBase::handleDragEvent (event); } };
I am new to STM32H7xx, and in the datasheet of these microcontrollers I read:"...The LCD-TFT display controller provides a 24-bit parallel digital RGB (Red, Green, Blue) and delivers all signals to interface directly to a broad range of LCD and TFT panels up to XGA (1024x768) resolution..."My question is: What do they mean by "TFT panels up to XGA (1024x768) resolution" ?Do they mean the controller also has an internal framebuffer ? Or is it just a controller without framebuffer, and I need to provide the framebuffer ?For 24-bit, XGA (1024x768) resolution, the framebuffer needs to be around 2.4Mbyte.Thanks.
Hi everyone,I'm currently working on a project where the device has to continuously read files from USB but where a user can also plug the device into a computer and mount it as a USB device to transfer and delete files and what-not. Now, I can detect when external power is plugged-in and want to show the user a modal dialog where they can choose what should happen next - "USB device mode" or "Standalone mode + charging".This modal dialog, however, should be shown on (or be reachable from) each and every screen within the application.Now, I came across two different solutions, both of which I do not particularly like:create a container for the modal, add some selection logic and put this container onto each screen. Now, I have two, first mind that I add this modal to every newly created screen, and second, I have to copy code to show and hide the modal to every view and presenter within the project (which doesn't feel all that portable).create a dedicated "USB mode selection" screen th
I can use listLayout add() item and remove() item good, but I don't knowhow to get selected item number on callBackHandler()?Have any example for me to study ?void Screen2View::callBackHandler(CustomContainer2 & cc_1){ listLayout1.remove(cc_1); invalidate();}Thank you & Best regards,
Hi,I have multiple Drawable on my screen and I want to change the color. I decide to iterate through my screen and depending of my drawable perform some modification. Right now I am using typeid() to extract the Drawable, it work for some Drawable but not for all (slider for example). Do you have any idea how to get the type? (On the past there was a function call getType(), but now it's deprecated) Drawable* component;component = this->getRootContainer().getFirstChild();while (component){//If box to this//if textarea to this//if slider to thiscomponent = component->getNextSibling();}Thank you
Hi, I've started a project STM32CubeMX and CubeIDE. I initialized a 4.3" TFT with LTDC and TouchGFX without RTOS. The function MX_TouchGFX_Process is in main while loop. At first everything were OK and my screens were updating very well. But for some reasons I added a delay in while loop. For example HAL_delay(500). Then screen updating goes too slow.I can't remove that delay from while loop. How should solve this problem. How should I independent TouchGFX from other delays in code?Thank you for your guides.
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.