Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I have problem with Wildcard Characters and Wildcard Range as bellowIn the Wildcard Characters i putted: a-z,A-Z,0-9.In the Wildcard Ranges i putted: a-z,A-Z,0x20-0xFE,0-9 I can show String and number OK, but only string of string or string of number.When i show string like "30TH" or number "2020" it can't show Wildcard Buffer 30th = 10 Wildcard Buffer 2020 = 5My code like:oxyDateArr[29]= "30th";Unicode::strncpy(txtOxyDateBuffer,oxyDateArr[29],strlen(oxyDateArr[29])); // for case 30thUnicode::snprintf(txtOxyYearBuffer, sizeof(txtOxyYearBuffer), "%d",20+2000);//for case 2020but screen show: =?1/2? and ?u?Anyone can help me solve those problem and explain What are Wildcard Characters, Wildcard Ranges? Thanks Everyone
HiWe have used touchgfx design in our customized STM32F746G project and using same hardware design of STM32F746G discovery board.While running, some wavy pattern is appearing on screen.I have attached the video for your reference .We have used FREE rtos in our project while trying ST LCD examples the wavy pattern is not there on display.To solve that issue I reduced the refresh rate 60Hz to 30hz still the wavy pattern appearing on display contentlook at the letter N M in videoPlease help me in this issue.
Hello All,I have tried using stm32cube for making a basic project with stm32f429(igt6) series and Touchgfx for keil.1) I wonder if touchgfx itself does the initialization of LCD or not? If not where should I add that?2) How can I configure Ram? FMC for nand flash and RAM has been enabled in advance (not completeley configured).3) Is there any working sample code available for these series?Ps. Please remove the other question in STM32 MCU section. I don't know how to do that.
Hi,I am creating a project with TouchGFX graphics on STM32F412G-DISCO. I have already downloaded and installed XCUBE-TOUCHGFX 4.14 and it is visible in "additional software" category. When selecting driver, the LTDC is grayed out. (attached) It is also absent in the "multimedia" category. How to enable LTDC. Please suggest on this. Thanks,EshwarENV:CUBEMX 6.0.0TOUCHGFX 4.14MCU REPOSITORY: stm32cube_fw_f4_v1250WIN 10 x64
Hello everyone!I have a STM32H7B3I-DK board.I use TouchGFX Designer ver 4.13.0 and created a simple project.The project consist of one screen with two elements: box1 & image1Also I created eclipse project with touchgfx framework, FreeRTOS and TouchGFX folder (conteins files generated by TouchGFX Designer).Succsessfully compiled it and download hex-file to my STM32H7B3I-DK board. It work well!After that I added a new element: shape1. Generated new code by touchGFX designer and update TouchGFX folder in eclipse project.Succsessfully compiled it and download to my board. It dont work!LCD screen is black.I run TouchGFX simulator and project work well.After that, I run target (to start TouchGFX project on my board) and as result, LCD screen is black, tooWhen I exclude add(shape1); from my code, it work well for both projects (TouchGFX Designer project and eclipse project with touchgfx framework) but without shape elementWhy? I dont now. Help me, please.I attached cpp, hpp files where I
I see this same behavior in TouchGFX version 4.13 as well as version 4.14.I am using a large text area and am attempting to utilize a Container to reduce the invalidated screen area to increase performance of other items being animated on the screen.Here is my text area. I placed a box of a different color than the background in the container behind text to show the container rectangle:The blue outline is the area of the text area.The idea here is to "reveal"only the part of the text area that I want invalidated when it changes.However, as you can see in the screenshot of the simulator below, the text is clipped.It looks as if the text area is shifted down in the container when the program is run on the simulator.Why is this and is there anything I can do to prevent it?
I have a STM32L4R9 Discovery Kit with a round 390x390 display. But I am not able to get the kit running with portrait display orientation. Neither static or dynamic during runtime.To minimize side affects I just made small demo app in touchgfx with just a SwipeContainer and two images. As soon as I configure the display to portrait the framebuffer gets coruppted.touch is working and also fitting the orientationlower 2/3 of the display do not change, just showing crapupper third change accordingly to swipe gestures, but only showing image in a destroyed mannerAny suggestions to solve the problem are highly appreciated.best regardsjoerg
Hi everyone,I've been working on a project with STM32 and touchGFX. I'm working with a 7 inch touchscreen display. In one screen, i inserted a scrollList. I'm getting to change it's items and manipulate the list at setupScreen and scrollListUpdateItem functions.The question is, let's say I have a scrollList that is initialized with 3 items. When the user clicks a random button from the same screen, I want to add a new item to the scrollList, and update it on screen.How could I do that?
I am asking this question in a new thread as I was hi-jacking another threadThe project structure displayed in Stm32CubeIDE's Project Explorer is quite different depending on where the project originated.When a project is created in Stm32CubeIDE (from an IOC file, for example):The Core and TouchGFX directories are there. Basically, the Project Explorer view is the similar what Windows Explorer shows:When a project is created using an Application Template and then opened in Stm32CubeiDEFollowing this video: https://www.youtube.com/watch?v=eiPtQp4chG0The Core directory and the TouchGFX directory are NOT included in the Project Explorer of Stm32CubeIDE. I do see that the TouchGFX gui files are located in Application / User / gui:However, where are the hpp files (which are in the "include" directory in the file system)? The only way to view it is to manually open it or "drag and drop" Screen1View.hpp into CubeIDE.And....when I attempt to open the declaration of a variable in Screen1Vi
How to escape edges being optimized in a round shaped display from TouchGFX app?
Hi, I am using a Nucleo F401RE with ILI9341 LCD Display and Touchgfx. I have managed to get the display working with a single framebuffer but the RAM on the MCU isnt capible of handling the full screen size (320 x 240), so i will have to use partial frambuffering- but im struggling. Does anyone have any working working example which i could follow and get my head around or someone to peak at my code to see where im going wrong?The code which i have attached seems to render the first few lines then stops. Kind Regards,Mike
Hello, I was looking at the microcontroller binary of a project that I'm using the touchgfx library and something is getting my attention. There is a big part of the file that contains a lot of code information from the touchgfx library. I don't think this was compiled as a debug info because it does not disappear using strip tools. I checked the optimization flag, also I stripped debug info, unneeded and other flags, and the same. They always are there. Any idea what can be happening? It's a shame having to spend all these bytes in this unused stuff. Here is a copy of the info that I'm seeing in the .bin. Thank you.
Hi,I'm trying to create a touchGFX application for STM3F429I-DISC1 board in the custom board approach. I would like to adapt it later to a larger screen, that's why i want to configure it this way. So I have succesfully configured the FMC because after debugging my application, i can see that the frramebuffer (starting from 0xD0000000) is filled with (0xF800 - corresponding to the red color in RGB565 format), but nothing displays. The doubt remains on the ILI9341 initialization, even if I copied the same routines generated by TouchGFX for the stm32f429i-DIC1 board.Do you have a idea about what could be the problem ? Regards!
I can correctly convert the assets from inside the Designer, either with "Run simulator" or "Generate code" (which I assume are identical, as far as converting assets goes).I selected "remap texts" from the config options in the Designer.Indeed, the texts from all languages are merged in a single table.However, when I compile and run the simulator using Visual Studio, the assets get regenerated automatically (which is very convenient), but with different options; in particular, texts are no longer remapped.The problem seems to be that the auto-generated GCC and MSVS files completely lack the config options."generated\simulator\msvs\touchgfx_prebuild.targets": this file contains a command ""$(touchgfx_env)\MinGW\msys\1.0\ruby193\bin\ruby.exe" "$(TouchGFXReleasePath)\framework\tools\textconvert\main.rb" "$(ApplicationRoot)\assets\texts\texts.xlsx" "$(TouchGFXReleasePath)\framework\tools\fontconvert\build\win\fontconvert.out&a
I have a TFT display with a resolution of 800x480 and STM32F429. Used the code from here https://community.st.com/s/question/0D50X0000A1lVxsSQE/repost-change-lcd-orientation-in-180-degree , everything works fine in the simulatorand separately tested on the 476H Discovery but on the TFT with F429 does not render different areas// FrontendApplication.hpp virtual void draw(Rect& rect) { if(drawCacheEnabled) { Rect r(0, 0, HAL::DISPLAY_WIDTH, HAL::DISPLAY_HEIGHT); Application::draw(r); } else { Application::draw(rect); } } // Mirror.hpp #ifndef MIRROR_HPP #define MIRROR_HPP #include <touchgfx/widgets/Widget.hpp> #include <touchgfx/hal/HAL.hpp> class Mirror : public touchgfx::Widget { public: Mirror() {} virtual ~Mirror() {} virtual touchgfx::Rect getSolidRect() const { return Rect(0, 0, 0, 0); } virtual void draw(const touchgfx::Rect& invalidatedArea) const { uint16_t* framebuffer = touchgfx::HAL::getInstance()->lockFr
My application has a number of screens. Each display a different set of data and controls, but they all have a standard menu bar, a footer bar, and a keypad which sits off to the side for data entry. I currently use a custom container to house these common elements and I apply this container to each screen. I've discovered this to be less-than ideal, especially when it comes to communicating between these elements and the Model. For example, the footer shows the power state of a connected device. When the power state changes, the Model notifies the presenters via the Modellistener, and in each of the presenters that have this base custom container I need to propagate the event notification to each view, which in turn propagates the event notification to the custom container, which deals with it accordingly.What better ways exist to apply standard elements to a number of screens and allow them to subscribe to event notifications from the Model, and easily access Model members similar to
When creating a project in TouchGFX 4.14.0 for the STM32H7B3i-DK board, the .ioc reference in the STM32CubeIDE .project file is not getting added thus the file does not get imported when opening the TouchGFX project in STM32CubeIDE from the .cproject file.If I run through the same process using another board such as the STM32F769i-DISCO, the .project file includes the .ioc reference.Ex:STM32H7B3i-DK TouchGFX .project<?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>STM32H7B3I_DISCO</name> <comment/> <projects> </projects> <buildSpec> <buildCommand> <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> <triggers>clean,full,incremental,</triggers> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> <triggers>full,incremental,</triggers>
This is from CubeMX 6.0.0 / FW_H7_V1.8.0Total Width is same as Horizontal Front Porchand this is for CubeMX 6.0.0 / FW_F4_V1.25.0 with the same parameters (everything looks good here)
I want to use a button, than I need button click and unclick time execute virtual function. How can it?Thanks.
Does anyone have a simple example for a picklist? I tried making a custom contrainer for a "pick list item" then I used a scrollwheel container to make a list. But how do I edit the code to change the names of the items? I tried following the example from "Tutorial 4: Creating a Scroll Wheel with Custom Behavior" but I can't get it to compile. It gives me the following error:gui/include/gui/containers/NumberList.hpp:16:21: error: 'textBuffer' was not declared in this scope Unicode::itoa(no, textBuffer, TEXT_SIZE, 10);But I dont understand how I am supposed to declare a textBuffer and have it linked to my WildCard text that I created in my customcontainer. Any help is appreciated. I'm using STM32H747I-DISCO v(1.0.0).
..
Is there any code to convert uint32_t data type to Char array data type so it can be used for display in LCD?
Hi,I have created flex buttons from the code (not from touchgfx GUI). I want to know how can i add wildcard text to the buttons. End result is button text should be able to change according to the string i feed it when i create the class (initialize).Thanks
Hello Community, @Community member @Martin KJELDSEN I have used STM32F746G-DISCO kit.My Purpose is to implement the Alert Screen.(See Image 1)Also i have create the custom container.(See Image 2)I have received the data from modbus. As, i received the Alert bit i need to display on the Alert Page.Case:Suppose i have received the 10 error.I display it on device but when Alert number is reduced to 10 to 5. Then i need to remove the 5 items from the display.Can you please guide me how to remove previous error?Regards,Nikunj Patel
Hello,i have a problem with TouchGFX. After filling the framebuffer via DMA2D (DMA2D class of TouchGFX) i got a Usage Fault "unaligned". Last called function was __ARM_common_memcpy4_8 in touchgfx lib. When i have a look at the register values the register R0 has a not 4 byte aligned adress. Further the adress referenced to member variable "lastRects" (type vector template class) of Application class (member of FrontendHeap). Using the ARM "__((aligned (4)))" doesn't fix this problem. Further I don't know where exactly the instance is declared? Is it really because of the unaligned adress? How can I solve the problem?Thanks and greetzNote:I found out that it only happens when I'm using double/multiple frambuffer. I'm working with lcd display with RGB Interface. So I want to use multible framebuffer. Ehat could be the problem? Maybe any faulty settings?I am setting frame buffer adresses like this: hal.setFrameBufferStartAddresses(adress frame buffer 1,adress frame buffer 2,adress f
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.