Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I'm making a LCD module with SDRAM for a STM32F767zi dev board but some pins are shared between this interfaces. How i can commutate the funcionality?
Hello,we have a GUI project running on STM32. Graphics is save in external Flash.Now , every time I rebuild the project, flasher for external flash compares the contentand in our case this takes 8mins... Can we somehow manually control this option and iuse it only ,when somethiing in GUI part of the code changes ?Thanks in advance,regards.
We have a custom board based on the 32H743IIT and I'm trying to do board bring-up and get TouchGFX working. We're using TouchGFX Designer 4.13.0, CubeMX 5.6.0, (updating to 5.6.1), and Keil uVision 5.29.0. I'm trying to follow the information on https://support.touchgfx.com/docs/development/board-bring-up/board-introduction and all seems to be going well until I get to the framebuffer section. Specifically, when I get to /* USER CODE BEGIN 2 */ HAL_LTDC_SetAddress(&hltdc, framebuffer, LTDC_LAYER_1); /* USER CODE END 2 */I get an error because the HAL_LTDC_SetAddress() signature wants a uint32_t for framebuffer, not a pointer. If I recast framebuffer as an array of uint32 and set the call to framebuffer[0], I get a linker error because there is no .ANY section. Is this correct? Any clue what's going wrong?There may be an issue with the SDRAM on the board, I cannot seem to access memory at 0xC0000000. That's more of a board bring-up issue and we're working on it internally.
Windows PC Simulation crashes when using a single widget (Button). Works fine with no widgets (only hard-coded text). Help!Everything works fine when using TouchGFX Designer to run a simulation on a Windows PC. But we are trying to build everything with CMake in Eclipse. And when using a single button we get the following stack trace (see attachment). It seems that it is a nullptr that is the problem. We do not have the sources for this to further debug (no thanks ASM).When using only hardcoded text, Eclipse/CMake works exactly as TouchGFX Designer Windows simulation. ✔�? When using a toggle button, the simulation does not crash (as it does when using a Button), but the toggle button is NOT drawn. However the hard-coded text is drawn fine.When using a Slider, we get an assertion statement (see attachment). When continuing, the source pointer is 0x3, i.e. in restricted memory.Absolutely any insight or tips would be greatly appreciated!
Hi,I have working on below setup:Software Tool Chain:STM32CubeMX 5.6.0TouchGFX 4.13.0 DesignerSTM32CubeIDE 1.2.0Hardware:STM32F746G-DISCO (Discovery Board)I am able to read USB Files names (1.txt, abc.png , mno.txt etc ) from Thumb drive to Serial Port.On TouchGFX Side . I am able to use Button, Static Txt ,Slides etc.How I Can read USB File Names with FreeRTOS and put in List Layout with <Fwd><Rev> <select> button with TouchGFX ?Is there any demo as above ?Thanks is advance .--Karan
Hi everyone,Just a heads up regarding the new (v3.0) STM32F746G-DISCO application template. As some of you have experienced, when using CubeIDE, the project was referencing some non-existant files and the Post-Generate command (after pressing Generate Code in TouchGFX designer) was not able to clean these up, which it can for other IDE/project types.When compiling some of you saw this error:make: *** No rule to make target 'C:/TouchGFXProjects/YetAnotherTest/TouchGFX/gui/src/logoargbbilinear127qspi_screen/LogoARGBBilinear127QSPIPresenter.cpp', needed by 'Application/User/gui/LogoARGBBilinear127QSPIPresenter.o'. Stop.I've fixed and uploaded the Application Template so you no longer have this issue. To fix it manually you can:Delete the file references from the .project fileRe-generate the project from CubeMX and then Generate Code from TouchGFX designer.But, as said, going forward any project hat is based on STM32F746G-DISCO from the designer does not have these issues.Sorry for the inc
Hello everyone!I want to display GUI on stm32f407zgt6 with touchgfx. I find the most similar example is using touchgfx on stm32f429, but there is no ltdc or dma2d on stm32f407, so the project generated by using cubemx has not displayed the correct GUI after downloading to f407. How to configure touchgfx for stm32f407zgt6 with cubemx?BR.
We are using stm32H743We need a frame buffer of 150K to our LCD. we do not have an external RAM, so we use the 412K internal RAM.We also work with USB (Full speed mode).each peripheral work on it own , but not together. if we enable both of them they are not working not even if the USB buffers are in another RAM section.there isn't any compilation or linking error, but nothing is working on the board.we asked her and you told us to increase the size of heap and stack bu its not help
Hi!I set CubeIDE as in the tutorial https://www.youtube.com/watch?v=12KXreXaLp0&t=3sI set FreeRTOS.In main.c I havevoid secondTask (void const * argument) {for (;;) {xQueueSend (messageQ1, & poster, 0);osDelay (1);}}The program runs to this function but stops there.Why?I'm sending Model.cppAndrzej
Hello, I’m working on device equipped with STM32H753 and LCD (320x240), 16 MiB of SDRAM (available for caching will be about 13 MiB) and SD card (SDMMC interface) that will be used also for storing images for TouchGFX.In some cases device shall display a few animations. Initially we’ve thought that animation will be stored as sequence of .PNGs and use of AnimatedImage widget. Amount of images depends in given animation, but let say that will be a at least one thousand of PNGs. After loading almost all PNGs and “indexing�? by TouchGFX Designer it slowed down to unusable state. Source files (.cpp) generated for images had size about 2.5 GB. We wanted that TouchGFX will be aware of each .PNG to generate IDs and use each for caching (we think that not all images will fit into SDRAM to accomplish full caching). The second reason for doing in that way was a unified procedure to extract binary with bitmaps and use it for external loader (TGX uses specific linker section for all images).After
I decided to have a go at producing a VGA display with the STM32L4. 640x480 @ 60Hz is the lowest resolution compatible with most displays (and VGA to HDMI convertors - many TVs only have HDMI ports these days). This resolution requires a pixel clock of 25.175MHz, which is usually derived from a crystal.But you can get close to this frequency using the PLL. Set the MSI to 24MHz, the input divider to 5 (/M) and the multiplier to 21 - this produces a VCO frequency of 100.8MHz, which divides down to 50.4MHz (for the System clock) and 25.2MHz (for SPI/Pixel clock).25.2MHz is only 0.1% off from 25.175, which should work (haven't quite finished off the rest of the software yet.....).
Hi,I am developing an application running on STM32F469 MCU to control an LCDGenerating my Code using STM32CubeMX.Using FMC Memry type is LCD_Interface, A23 Data: 16 bitsThe bug I found is in the STemwin_wrapper.c file, in functions : FMC_BANK_WriteData and FMC_BANK_ReadData.the bug is that the code generated tries to write and read the data from FMC_BANK->RAM and that address is 0x60000002 where it have to be 0x61000000typedef struct { __IO uint16_t REG; __IO uint16_t RAM; }LCD_CONTROLLER_TypeDef; /* The Bank address need to be entred by the USER */ #define FMC_BANK_BASE ((uint32_t) 0x60000000 ) #define FMC_BANK ((LCD_CONTROLLER_TypeDef *) FMC_BANK_BASE) /** * @brief Writes register value. * @param Data: * @retval None */ static void FMC_BANK_WriteData(uint16_t Data) { /* Write 16-bit Reg */ *(uint16_t*)0x61000000 = Data; // FMC_BANK->RAM = Data; } /** * @brief Writes register address. * @param Reg: * @retval None */ static
Hello,I am developing an app using tortoise git, I have made a lot of commit and cleanup in rep and my application was ok.Ten commits ago I never made a clean up, so, when I cleaned up the repository my app crash in one line of code I made before.I am working with keil, I had clicked "generate code" in designer and then open keil and compile, but it crash in certain cases.The app is working 70% before I cleaned up git it was 100%.I really need urgent help.Thanks
..
This post (https://touchgfx.zendesk.com/hc/en-us/community/posts/115000138705/comments/115000702685 ) mentions a demo for an MJPEG video player in TouchGFX.The link is given as:http://ftp.draupnergraphics.com/TouchGFX/demos/simple_video769eval.zipNow when I open this in TouchGFX Designer 4.10 it first asks me to convert the project from 4.8 to 4.10. That seems to work ok, but the log says "Generate Assets Error" with the following output_GenerateAssets.log:make[1]: *** No rule to make target 'generated/images/include/BitmapDatabase.hpp', needed by '_assets_'. Stop. simulator/gcc/Makefile:68: recipe for target 'assets' failed make: *** [assets] Error 2There is a .png file in assets/images/.What might be the problem here? Or is there a more up to date example for a MJPEG video player available?
Hello,I have a GUI, that is also combined with another tasks in the project.So we have some custom includes in the code of GUI. I wonder if we are able to check this GUI also in simulator. When I try to run Simulator, it complains about missing custom files in include statements...Can I just somehow solve, because I'd only like to try the TouchGFX part of the project.Is there any more info on how Simulator builds ?Thanks in advance,Regards,B.
Is it possible to implement touchgfx with a NUCLEO board. I think yes because my NUCLEO STM32F767NI has LTDC.But i doubt because the aren't touchgfx templates for nucleo boards.
hi,slowly slowly i've got my growing TouchGFX project to become too fat for the2MB flash on a STM32F429..as i've put too much graphic assets on the "database" and i'm not using all of them in the screens, i'm wondering if there's a way to find out "programmatically" which assets are not really referenced.. ( i know which "few" icons i put up with a routine..)i only found this thread, 4 year old, that's really shows a manual procedure (and tedious..) =)https://touchgfx.zendesk.com/hc/en-us/community/posts/207462585-Removing-unused-bitmapthanx for hints!
I have a Newhaven 800x480 display connected to the STM32F746G-DISCO board.Finally got the display and the touch working. It is currently using a single buffer @ 0xC0000000 SDRAM.There is some artifacts when the screens change with the cover process. So I want to try double buffering.However if I change to double buffer using 0xC040000 for the second buffer and add an additional layer I get a warning that only one layer is used and things don't work correctly.I did regenerate code in the TouchGFX designer.And TouchgfxGeneratedHal.cpp shows the second buffer.What did I miss? Ideas?TIA
I want to make freeRTOS touchgfx on simulator (GUITask, TransDataTask). Does TouchGFX support for freeRTOS on simulator?Please help me. Thanks
In order to implement my ui component more independently, I design it this way.// subclass of containerMyComponent::MyComponent(){ // init some ui // ... Application::getInstance()->registerTimerWidget(this);}MyComponent::~MyComponent(){ Application::getInstance()->unregisterTimerWidget(this);}void MyComponent::handleTickEvent(){ if(backend_data_dirty){ backend_data_dirty = 0; // update some ui }}I have designed some components this way, and can run smoothly. So I avoided use touchgfx's model and presenter completely. But recently, when more and more ui put together, program always crashed at FrontendApplication.hpp virtual void handleTickEvent() { model.tick(); FrontendApplicationBase::handleTickEvent(); }As no source code suplied, I have no way to debug it.
Hey,I'm working on custom board project with display size 800x480px and resistive touch screen. I have issue with using setCalibrationMatrix. Below is code snippet from my STM32TouchController.cpp file. In initalization, calibration matrix i set by calling calib.setCalibrationMatrix(reference_points, adc_points). I determined adc_points using the debugger by clicking on reference_points drawn on the screen. adc_points are raw values from AD converter the same goes for x_val and y_val in sampleTouch routine. After the calibration matrix is set as seen below the values in touchgfx engine are translated incorrectly. To be precise y coordinate is offseted by +160. Here are three examples for touched and translated points:pressed reference point drawn on screen in position x: 40 y: 40 is translated to x: 42 y: 203 (raw adc values: x: 427 y: 804)x: 760 y: 40 -----------------> x: 762 y: 202 (raw adc values: x: 3678 y: 844)x: 760 y: 440 -----------------> x: 762 y: 603 (raw adc values:
Hello,I'm following this great tutorial from here :https://support.touchgfx.com/docs/development/board-bring-up/how-to/03-display-internal/and I can't get past this step. Screen is blank and nothing happens... I have this screen :ER-TPC050A2-1 5�?Capacitive Touch Panel with Controller , 800x(RGB)x480 Dots I've setup framebuffer in internal RAM, but I'm not sure what to put inLTDC settings in CubeMX, because I don't have data on front/back porch.It's chinese screen and this data is not specified in short datasheet that I have.I also cannot determine what would be the apropriate clock setting on MCU for screen to work.What can I do ?Is there any procedure that I maybe set "safe" values or are there any recomendation with what values to experiment ? Any other advice ?This is my first project in this area and I must be missing something obvious...Thanks in advance,Rob.
Hello I am trying to use Touch GFX. In CubeMX I installed the related software pack:When I open the additional software part there is no option I can enable Touch GFX, it is simply empty:How can I enable it from CubeMX? Thank you beforehand.
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.