Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello, is it possible to allow a user to upload a file to the display? For example, if there was a usb input, the display, can read the contents or write to the usb?
HiI just noticed that when building the Simulator using TouchGFXDesigner 4.24.1 the files/config/gcc/app.mkand/config/msvs/Application.propsare updated with the relative path to the TouchGFX env folder, for instance:# Location of the TouchGFX Environmenttouchgfx_env := ../../../../../TouchGFX/4.24.1/envIf I try to overwrite these paths the files are just overwritten when I run the Simulator from TouchGFX Designer.This is a problem when working on a project with multiple people that may have the project check out at different folder depths. I don't think the solution is to require that the project is checkout out at the same folder depth for everyone on the same project.You can argue that it isn't a big problem as TouchGFX Designer updates the path for anyone creating the Simulator.But it does create 'noise' in the repository.Any suggestions on how to solve this ?//Jesper
hi, Recently I notice that toucgfx simulator screen size is twice the value set in toucgfx designer, if I want the exact pixel size set in touchgfx designer while simulating, is there a scaling factor or some function to call? thanks for your time.
Hi,I'm using a custom H7 board, with QSPI + 16-bit SDRAM, and using RTOS.However I run into an issue where there's glitching in my gauge in TouchGFX (see attached video...)TouchGFX is using double buffer, also animationStorage: setFrameBufferStartAddresses((void*)0xC0000000, (void*)0xC0177000, (void*)0xC0400000); A few points:- I'm able to read/write to QSPI & SDRAM correctly- Static images appear correctly- Glitch also appears on the whole screen during transition from one image to anotherMPU: static void MPU_Config(void) { MPU_Region_InitTypeDef MPU_InitStruct; /* Disable the MPU */ HAL_MPU_Disable(); /* Configure the MPU attributes for region 0 */ /* Configure the MPU attributes for SDRAM to normal memory*/ MPU_InitStruct.Enable = MPU_REGION_ENABLE; MPU_InitStruct.Number = MPU_REGION_NUMBER0; MPU_InitStruct.BaseAddress = 0xC0000000; MPU_InitStruct.Size = MPU_REGION_SIZE_256MB; MPU_InitStruct.SubRegionDisable = 0x0; MPU_InitStruct.TypeExtField = MPU_T
I’m not sure why TouchGFX doesn’t seem to be running in a new H563 project when I’ve done this on the H743 on a previous project. The last project did use LTDC instead of SPI for the display interface so maybe that has something to do with it. I have confirmed the SPI drivers for the LCD by painting an entire screen from a buffer of color pixels.Right now I just have a single simple screen created in TouchGFX with internal memory set for assets.I setup the ToughGfxTask as described in the TouchGFX documentation for FreeRTOS…Real Time Operating System | TouchGFX DocumentationI then setup the SPI display interface to TouchGFX as described in documentation…FMC and SPI Display Interface | TouchGFX DocumentationWhere can I set a breakpoint to see if the TouchGFXTask is running? I never reach a breakpoint in this flushFrameBuffer().I see the TouchGFXTask startup function TouchGFX_Task() does execute…Since I’m using the internal flash for TouchGFX there’s nothing need in the
Hello, at first im new in the STM32 world. Yesterday I set up the Touch GFX as "How to TouchGFX: Installing TouchGFX Designer for STM32 GUI applications" tells me. For that i delete all STM Programm tha i install pervius. Download lates Version and start install process as discript in the Video.I follow all steps and pass with no errors. Than i try to start a new STM32 project. But the IDE dont generate any c-file at all. en.stm32cubemx-win-v6-13-0en.stm32cubeprg-win64-v2-18-0en.st-stm32cubeide_1.17.0_23558_20241125_2245_x86_64.exeen.x-cube-touchgfx.4.24.1 I'm not a beginner with this stuff, I'm working for long time with Arduino and ESP32. The IDE is very complex and may be I'm only set one checkbox to much
I have two buttons on Screen1. Both interactions change screen to Screen2. Can I determine which button was pressed when in Screen2View::setup?Or do I need to use a separate virtual functions and then create a variable setting the button called?
I read https://blog.st.com/neochrom-gpu/.Since it was stated that the NeoChrom GPU is incorporated into STM32U5 MCU's, I bought a NUCLEO-U575ZI-Q to learn more about it, because it could be interesting to use it for future projects for my work.However after I received the board and started reading the datasheets and reference manuals, it turned out there's no mention about the NeoChrom GPU.Are there any MCU's out there that do contain them? I could not find it.MCU Finder does not know a category NeoChrom GPU.Is it just a future plan to add something great like that?
So I got into some merge conflicts.. Fine I thought - they should be manageable. Simple things in the .touchgfx file and some in texts.xml But no matter what I do TouchGFX Designer cannot create assets. It complains about merge conflicts in generated files - yes there are conflicts in generated files.But that shouldn't matter since running the asset generation should overwrite those ... ? It seems touchgfx does not clear the cache folders. If I manually clear the cache folders I run into this error: Done Post Generate touchgfx update_project --project-file=simulator/msvs/Application.vcxproj C:/TouchGFX/4.24.1/env/MinGW/msys/1.0/Ruby30-x64/lib/ruby/gems/3.0.0/gems/touchgfx-cli-4.24.1/lib/touchgfx/generators/msvs_project_updater.rb:89:in `block (2 levels) in ensure_source_nodes': undefined method `downcase' for nil:NilClass (NoMethodError) from C:/TouchGFX/4.24.1/env/MinGW/msys/1.0/Ruby30-x64/lib/ruby/gems/3.0.0/gems/nokogiri-1.12.5-x64-mingw32/lib/nokogiri/xml/node_
Hey everyone, I'm new to the whole STM32 world so bear with me.I saw that the NUCLEO-F072RB worked with the X-NUCLEO-GFX01M2, but I can't make it work. The touchGFX is grey in the CubeMX and there are no examples in the touchGFX designer with the F series.I was trying to work with the IDE instead of CubeMX but the result is the same.I've seen some answers here about porting and making 2 exact setups and transfering the difference from one to the other but I'm really confused on how to solve this problem.Can anyone help me out?Regards,Rupert
We would like to support a dual bank approach for background software updates.This allows the TouchGFX assets to be flashed into the un-used bank in the background while original application is still running (using the other bank). Then the restart and bootloader re-flash of only the application is quick.To do this we would need to set the "Base address of Assets" during startup, is this possible?e.g.- Current application has TouchGFX assets in Bank 2a) background download of new package (application + assets)a1) application -> external staging flasha2) assets -> Bank 1 (the one not in use)b) restart deviceb1) staged application -> application internal flashb2) header set to tell it to use Bank 1c) application startsc1) Sets TouchGFX asset base address to Bank 1 addressc2) Bank 2 is not in use for new time this process occurs
Hello, I am working with the stm32h7s board. I am developing an interface via Touchgfx designer and embedding it on this board. If I generate via Touchgx designer and upload to the program, I see my design on my LCD screen and my codes are working, but when I try to debug the same project via stm32cube ide, I get this error and when I terminate it, it doesn't work.Do I need to make a separate setting to debug? Can't I open the code created by gfx designer and debug it in stm32cube?Thanks.
Hello,I am working on interfacing an external flash memory IC MT25QL512 with the STM32H745 microcontroller using QSPI in IAR Embedded Workbench.The Problem:When attempting to write data to the external flash using the HAL_QSPI_Transmit function, the operation fails at the following line:status = QSPI_WaitFlagStateUntilTimeout(hqspi, QSPI_FLAG_TC, SET, tickstart, Timeout);Details of My Setup:Microcontroller: STM32H745Flash Memory IC: MT25QL512Development Environment: IAR Embedded Workbench Has anyone encountered a similar issue with the QSPI_FLAG_TC not being set during a write operation?Are there specific configuration or timing considerations for the STM32H745 and MT25QL512 combination that I might be overlooking?Any debugging tips or suggestions would be greatly appreciated. Thank you for your support!!
Is it possible to change the color of the image or icon I created via GUI or code? The color of the .svg icons in Touchgfx's own native files can be changed via GUI, but I could not change the color of the .svg or .png images I created. There is no function called image.setcolor in the code. Is there a way to change the color of the image I created?Thanks
Hi All,This is my first foray into TouchGFX/STM32 code and I can use TouchGFX Designer to lay out a screen and upload it to my Riverdi display very easily. I have it set up along side STM32CubeIDE (also first time using) and can generate and modify code freely. Even adding custom event code is quite easy. However, I need to modify the behaviour of the button widget itself. I need to trigger an event on both button press AND on button release (I want to do stuff while the user holds down the button and stop doing it when they let go). The standard widget does it on release only. I've seen a topic on here that seems to deal with this here however it looks like a code-only approach and I would like to still be able to layout screens using the Designer. My approach was to lay everything out graphically and then create my own button classes and just substitute my class after exporting to CubeIDE. I couldn't get this to work though as I'm not sure where to put my cpp/hpp files, or
Hello. Recently I received an STM32U5G9J-DK2 board which I purchased earlier this year. I want to ask for the Out-of-Box Demo of this board for backup since I find it really stunning and I want some reference for my own TouchGFX GUI application design. So, where should I go for asking? Or is this demo available in source project or binary file or neither makes sense? Can I, as a student, be able to get a binary file version of it?Looking forward to your replies. Thanks in advance.
I am having STM32U575I-EV Evaluation board and I am creating a TouchGFX based project created out of CubeMX with enabling RTOS, TouchGFX and DMA2D.While the project is built successfully and works without any crash, the display is not updated with the framebuffer. On looking more, I found that TouchGFX::HAL::tick() is not being called to have furthr call to the TouchGFXHAL::beginFrame(). I have configured Application Tick Source for TOuchGFX to "custom" in the CubeMX project.But then, how to provide source to this HAL::tick()? Is it through hardware timer interrupt to be done?
https://support.touchgfx.com/docs/development/ui-development/touchgfx-engine-features/texts-and-fontsTo export the texts, the developer uses the new tool, which is located in touchgfx/framework/tools/textconvert/translations.rb. The tool can be run in the TouchGFX Environment. How do I run this tool in the TouchGFX environment?
Hi,Just another point I am stuck on and coudn't find a solution.I created a specific keypad as a custom container, to use it under several views. Initially it is hidden. I can show it by using keypad.setVisible(1) in those xxView.cpp's whenever necessary. BUT, I coud not find a way to hide it by pressing a button which is contained in that custom container. (I don't want to construct this keypad in a Modal Window, because in that case I will need to create (and program) the exact same window with many buttons under every view.)Any suggestion?Thanks.
Hi, We have a system as below and we have proved that the whole design works fine with TouchGFX framework. However, we are now evaluating if touchGFX is really sufficient for our full requirements. are there any known limitation with touchGFX ? from the forums following are the findings. 1. TouchGFX may not be suitable for advanced graphics like image rotations more than 90 degrees. 2. TouchGFX may not be suitable for 3D graphics, however some basic animations can be achieved via Texture mapping. 3. TouchGFX do no support audio. However, I am not sure about the following 4. Rendering google maps or any maps for real time assert tracking, I could not find any example or thread discussing this. 5. support for h/w keys to control menu and screen ? this is one of the key requirement for our design as the design will be based on hardware buttons/keys( upto 8 ). this product will not have touch screen. can you please help ? also any confirmation on map
Hi,Attached project starts with this screen: When the white Box is moved to the left - with pressing 'a' key, it should completely go off the screen. However, one pixel thick line is always visible.box1.setX ( box1.getX () - 1 ); box1.invalidate ();Why ?Thank you
I am exploring the video API and I found a strange behaviour.While testing "Video example", I added a stop button.I was expecting the stop to update its frame to the start of a video but that did not happen.I had to *.showFrame(1) to force the update.If a video is marked as Repeat-able[1], shouldn't stop[2] reset the image to the start of the video?Note: I cannot test my suggestion as this is par of generated code.[1] *.setRepeat(true); // *ViewBase[2] Suggestion:setCommand( _, STOP, _) stream.isShowingOneFrame = stream.repeat; // force update on repeat stream? stream.doDecodeNextFrame = stream.repeat; //
Hi everyone.I have a board STM32F413 disco. How can I use TouchGFX to display on LCD on this board?I have found the template in TouchGFX but I didn't see it.Is there any way? that I can display LCD on the STM32F413 disco, or where I can find an example to sourcode for this.
Hi all. I'm trying to display local floating point variable data via a button click in text area fields on my TouchGFX project screen. I seem to be having an issue. It appears that the fields are being populated with the format specifier that preceeds the variable in my code. Here is my button function: void main_screenView::s_type_bobbin_btn_click() { // Test constant, floating-point variables for bobbin dimensions const float bobbin_length = 12.51; const float bobbin_width = 7.36; const float bobbin_height = 3.88; // Convert the float values to strings and store them in the buffers Unicode::snprintf(bobbin_length_data_areaBuffer, sizeof(bobbin_length_data_areaBuffer), "%.2f", bobbin_length); bobbin_length_data_area.invalidate(); Unicode::snprintf(bobbin_width_data_areaBuffer, sizeof(bobbin_width_data_areaBuffer), "%.2f", bobbin_width); bobbin_width_data_area.invalidate(); Unicode::snprintf(bobbin_height_data_areaBuffer, sizeo
HiI wish to display two variables on a line graph.I create the graph in the TouchGFX deigner with Line1 and Line 2.However I cannot work out how to set add points to the graph.I used the method:/**************************************************************/ void Screen1View::handleTickEvent() { tickCounter++; // Insert each second tick if (tickCounter % 3 == 0) { float yMax = graph1.getGraphRangeYMaxAsFloat(); // Insert "random" points along a sine wave graph1.addDataPoint((int)(Detector_Y.NormOp * 50 + 50)); } }In my Screen1View.cpp file, but it adds the same point to both lines.There doesn't seem to be a method that adds points to the graph elements.How do I do this?Do I need two seperate graph widgets overlayed?Best regardsRob
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.