Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi,I see that last fall ST started to port LVGL to some of their devices, and several already supported: STM32F412G-DK, STM32H7B3I-DK, STM32MP135F-DKhttps://www.st.com/content/dam/ecosystems/stm32-gui/out-of-the-box-gui-software-available-for-stm32-display-kits.pdfAre there plans to support STM32H747 and STM32U5A9J with MIPI DSI this year?( currently I am experimenting with https://github.com/MaxSpb69/STM32H747I_Disco_LVGLport , but it is not perfect - too much data copying )I would like to see an official version from ST.Thank you
I sometimes get the following error during code generation: An error occurred during text conversion This is repeated if I try to regenerate, but generation succeeds if I restart TouchGFX Designer (v 4.23.1) and generate.Any idea what's causing this?
Hello,I'm using a display with stm32f4 + external memory for image and font.The project runs well using flash in mapped mode.Now I want using flash in indirect mode because I need use part of it for storing info.I implement serial flash datareader and relative bsp methods.Images with ARG8888 format are loaded correctly but images with L8_ARG8888 can't be loaded.Micro goes in fault hadler when it loads L8_ARG8888 image.L8 image format is supported when I use serial flash datareader?If I change format of image from L8_ARG8888 to ARG8888 images are loaded in wrong way. What is the best practise for change type? Thank you Nicola
Hi,Please find attached a list of Qs & As from a recent TouchGFX Webinar./Martin
and more, how the characteristic parameter this LCD has?
I have custom clock widget in my project and its working fine on version 4.20 but when i upgraded it to 4.21.0 or 4.21.1 causing distortion on clock hands.When I investigate the issue I saw that SCB_CleanInvalidateDCache() function removed from TouchGFXGeneratedHAL::flushFrameBuffer function. Here is the old function 4.20 has;void TouchGFXGeneratedHAL::flushFrameBuffer(const touchgfx::Rect& rect){ HAL::flushFrameBuffer(rect); // If the framebuffer is placed in Write Through cached memory (e.g. SRAM) then // the DCache must be flushed prior to DMA2D accessing it. That's done // using the function SCB_CleanInvalidateDCache(). Remember to enable "CPU Cache" in the // "System&
The current Z-Order of widgets is based on the order of the "Add(widget)".I want to create a number of widgets at the same location as an existing widget, but want this widget to under other widgets.Currently, the only way this seems possible is to modify the "xxxBase.cpp" file and add your widgets where you want them in the Z-Order.Another way I found is to take all the widgets you want above the Z-Order of the newly created widgets, and "remove(widget)" them. Then create your widgets, and "add(widget)", then add the "remove"d widgets.Do you have a call, which is add(widget, order). Which is maybe preceded by the call order = getWidgetZOrder(widget). Or a call, which is setWidgetZOrder(widget, order).
Hello, I am using STM32F746 with Touchgfx. I generated project with STM32CUBEMX. I notice that during first boot STM gets reset multiple times before running stable.I try to debug issue and found that ound out its getting reset at function SCB_CleanInvalidateDCache () ( PC : 0x08011420 or 0x08011410 ).And SCB_CleanInvalidateDCache() is getting called by TouchGFXGeneratedHAL::flushFrameBuffer() I didn't enable cache in cubemx project, Not sure about issue, Any suggestion ?Thanks
I have generated a new project with Touch GFX Designer where I created a text area and also created a button, to which I have linked an interaction. This interaction will call on a new virtual function which I then plan on integrating with my external project files. I've created my projects .c and .h files in which I'm writing a simple arithmetic calculation. Note that my project files are in C whereas the Touch GFX generated files are in C++, I now want to call the arithmetic function in the model.cpp file and I'm unable to run the simulator on the Designer as it gives me an error. File Path for Touch GFX generated files -> C:\TouchGFXProjects\MyApplication_2\CM7\TouchGFX\gui\srcBelow are the files: view.cpp #include <gui/screen1_screen/Screen1View.hpp> Screen1View::Screen1View() { } void Screen1View::setupScreen() { Screen1ViewBase::setupScreen(); } void Screen1View::tearDownScreen() { Screen1ViewBase::tearDownScreen(); } void Screen1View
Hello, I'm working with the STM32H7B3I-DK.Info:1- STM32H7B3I-DK (STM32H7B3LIH6QU)2-STM32CUBEIDE rev: 1.6.13- TouchGfx rev: 4.16.1I want to use the CRC module for data verification (16 bit).Problem:when I use the CRC default version everything works fine hcrc.Instance = CRC; hcrc.Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_ENABLE; hcrc.Init.DefaultInitValueUse = DEFAULT_INIT_VALUE_ENABLE; hcrc.Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_NONE; hcrc.Init.OutputDataInversionMode = CRC_OUTPUTDATA_INVERSION_DISABLE; hcrc.InputDataFormat = CRC_INPUTDATA_FORMAT_BYTES; if (HAL_CRC_Init(&hcrc) != HAL_OK) { Error_Handler(); }But when I use this version of CRC to calculate my crc on my data, there is a problem with touchgfx (touchgfx_init) hcrc.Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_DISABLE; hcrc.Init.GeneratingPolynomial = CRC_POLYNOMIAL_VALUE; hcrc.Init.CRC
Hello Community, I have been working in an app that has 2 different lenguages defined in the "Texts" option in TouchGFX. In the Canvans i have for example a textArea that is configured as "Auto-size" with typography "Large, 40px" and centered alignment, this text is in english "Select a Cycle" and in spanish is "Seleccione un Ciclo". As there is the option to "Auto-size" the textbox, is there an option or a way to use instead an auto typography to adjust to the textbox? saying that both my text fit in the same TextBox, one with "Large, 40px" and the other with "Default, 25px". Hope to hear from you soon :) Greetings!
I have multiple containers on the screen at any given time. Most of the time, these containers are on top of each other. Today I just noticed that touching on the top container, will sometimes click a button on the container below it. How can I stop this from happening?
I want to customize the gauge widget with my image.1- I drew an image on Coreldraw then exported PNG( image 199x198px ) 2- I used it in gauge background but it was not shown in real pixels in designer( gauge_gfxdesigner image ) 3- I programmed it on my board, the image was shown in right pixels on LCD ( gauge_lcd image) while using standard gauge styles in designer there is no such a problem.what do I do wrong? How can I convert my image to be shown in right pixels?thank you and best regards.
I have created 2 screens , screen1 and screen2, and I would like to override 2 virtual functions inside the ModelListener class from Screen1Presenter and Screen2Presenter respectively. However the overridden function from the derived classs (i.e. Screen1Presenter and Screen2Presenter) is never called. I have no idea how to solve this problem because its a weird scenario and I am unsure what to search to solve this problem...Model.cpp void Model::myBtn1Clicked(void){ modelListener->ShowScreen2(); ///called successfully } void Model::myBtn2Clicked(void){ modelListener->ShowScreen1(); ///called successfully }ModelListener.hpp #ifndef MODELLISTENER_HPP #define MODELLISTENER_HPP #include <gui/model/Model.hpp> class ModelListener { public: ModelListener() : model(0) {} virtual ~ModelListener() {} void bind(Model* m) { model = m; } virtual void ShowScreen1(){} //// this line s c
Hello,I checked out the documentation about TouchGFX (Link) and additionally installed TouchGFX as standalone software (without CubeMX).I would like to know, whether this framework can be used for other (non-STMicroelectronics) ARM Cortex MCUs. I found this page in the documentation which describes how to use TouchGFX with or without RTOS but the whole documentation seems like based on using CubeMX. I cannot find any "straight forward" initialisation routine for TouchGFX to use for other MCUs. Is it possible to use TouchGFX with any other ARM Cortext MCUs and if yes, is there any documentation for setting up the project and initialisation of software? Thanks,Best regards!
Hello, I have made a simple application with STM32G071RB_NUCLEO and an X-NUCLEO-GFX01M2 I TouchGFX. The problem is that the needle in the Gauge or the hands in the analogue clock are not displayed. When I look at Memory Details in STM32CubeIDE I can see the files. Does anyone know how to fix it? Br. Stig Hansen
I've been using LVGL for a while and I must say, their implementation (much based on CSS styles) is good to make responsive designs that scale based on screen size. Their concept is very simple, every object have a flex property that can be enabled. Objects put inside flex containers, for example, are automatically arranged inside the container in rows or columns. If the container size change, the objects are rearranged. There is also the grid option. This make possible the implementation of responsive designs very easily. So far, so good. But there is a problem: LVGL dropped their support for DMA2D acceleration on their latest major version. They expect to have some kind of official partnership with ST for bringing this feature back. I'm totally against this kind of behavior on a project that take benefit from community sent code. It's a total bummer!It's been a while since I have used TouchGFX for the last time. Some of my projects makes use of displays of different resolutions. Is t
Hi,seems like TouchGFX Designer is unable to create a compilable folder structure for TrustZone-enabled U5 projects. So far the workaround is to use a separate non-TrustZone project and then manually sync all the changes made by TouchGFX Designer back to TrustZone-enabled one. This is very inconvenient and error-prone way to do work.The ST stuff has been made aware of it and the answer was "We are working on it". TouchGfx version was 22.0 that time. Is there any progress on this matter? Seems like recent TouchGFX updates didn't fix the problem.Thanks.
Hi everyone. I set a flag, and checked it in handleTickEvent of any page. I give new location to images when the flag is set. I have a problem in this point. Sometimes(approximately 1/50 flag set), i see random color on some pixels. I research this problem at now. Do you have any idea about this problem? If i can find source of this problem, i will think the solution. I need to ideas about source of this problem. I have take many photos about this problem. You see that in following SS.Info:STM32G0B1EXT FLASH IC Best regards,
TouchGFX 4.23.1 is now out. Please follow this link to download it. 4.23.1 Release details: Release date: January 22nd, 2024 New TouchGFX Designer Features: Bugfixes in TouchGFX Designer: Fixed TextArea lineheight in canvas not matching with rendered lineheight. Fixed 'tgfx.exe generate' creating new 'touchgfx_backup' everytime it is executed. Fixed opening properties for 'Grid Lines' and 'Labels' on graph widgets enabling and disabling them. Fixed importing Custom Widgets with fonts causing issues. New TouchGFX Core Features: Added methods SwipeContainer::goNextPage() and SwipeContainer::goPreviousPage() to change page with an animation. Bugfixes in TouchGFX Core: Fixed issue where kerning data was sometimes missing for vector fonts. Fixed issue where CacheableContainer could draw outside the invalidated area. Drawing vector fonts on STM32U599/5A9 using GPU2D (NeoChrom) would result in poor anti-aliasing. Fixed Keil library nemagfx_core_release.lib to use lc
Hi,I'm using TouchGFX to develop an application, using mostly static screens. But I have a requirement to produce a runtime splash screen and idle screen from user-supplied images read from SD card or stored in flash. I can do this without too much problem, and have it working with either BMP or JPEG images from both sources.But to use the hardware acceleration peripherals (JPEG and DMA2D) I have had to disable their use in the TouchGFX configuration.For the JPEG hardware, the TouchGFX-generated code contains the fixed-name callbacks such as HAL_JPEG_DataReadyCallback, HAL_JPEG_GetDataCallback etc. Obviously there are linker errors if we both implement these functions and I can't see a way to 'hook into' their generated functions. If I disable JPEG hardware in TouchGFX, does that only affect its performance when using video? And what is the performance hit over software support?For the DMA2D, the graphics application stops after I have used DMA2D (in a different configuration
Hellohow to save (int, float...) values, in non-volatile memory on a riverdi RVT70HSSFWCA0 screen. It has an external qspi flash. Can you give me some simple basic examples or a demo file? I think we should use HAL FLASH? and the code should be put in which part of the project (in part touchgfx or stm32 cm7 (main.c ...)), I admit that I am a little disoriented with object programming on cubeide!
Hi all,I've got a custom Assert Failure Handler ready to go, and I'm wondering if there's a good way to display assert information (file name/line number) after an assertion has happened in the MVP context? I'm thinking the only way to do this is to write directly to frame buffers? Is there HAL code available for the H7 (using custom hardware with an STM32H750 chip) to do something like this? Or is there a better solution available within TouchGFX?
I've been trying to test out the screen on the board I just got. I can get the examples to work fine, but even if I copy the values over to my project, nothing shows (the project is just a blank project generated by the IDE). Pretty new to display stuff so I wouldn't be surprised if I missed something simple. Below are my parameter and layer settings for LTDC, every other setting for the controller has been untouched. Basically my goal now after trying to get it to work for a while is just to have the screen just change a different color at this point. Anybody have a clue what I'm doing wrong?
I am trying to port a Project using TouchGFX (Designer 4.17) and FreeRTOS to our own RTOS using IAR 8.40 Toolchain and th STM32F769I-Disco Board (Same controller will be used in the final product). When calling MX_TouchGFX_Init() the System runs into an a HardFault The HardFault occurs in the Library code (touchgfx::Screen::draw accroding to disassemly PC: 0x3ade9e, calles from touchgfx::Application) _ZN8touchgfx6Screen4drawEv: 0x3a'de7e: 0xb53e PUSH {R1-R5, LR} 0x3a'de80: 0x2200 MOVS R2, #0 0x3a'de82: 0xf8df 0x4264 LDR.W R4, [PC, #0x264] ; _ZN8touchgfx3HAL13DISPLAY_WIDTHE touchgfx::HAL::DISPLAY_WIDTH 0x3a'de86: 0x9200 STR R2, [SP] 0x3a'de88: 0xf8df 0x3258 LDR.W R3, [PC, #0x258] ; _ZN8touchgfx3HAL14DISPLAY_HEIGHTE touchgfx::HAL::DISPLAY_HEIGHT 0x3a'de8c: 0x5ea2 LDRSH R2, [R4, R2] 0x3a'de8e: 0xf9b3 0x5000 LDRSH.W R5, [R3] 0x3a'de92: 0xf8ad 0x2004 STRH.W R2, [SP, #0x4] 0x3a'de96: 0x4669 MOV R1, SP 0x3a'de98: 0xf8ad 0x5006 STRH.W R5, [SP, #0x6]
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.