Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello, I'm trying to understand the linkerscript file because I have a RAM overflow error.As far as I understand the STM32H750 has 1MB internal RAM, why is it only set to 128K in the LTDC_Paint example, see screenshot below?Thank you
I uses touchGFX associated with Cube IDE with ETH, lwip freertos , it is compiling ok and working. But found ETH gpio pin of ETH in ioc, the max speed is setting to low, so I change it to veryhigh , rebuid the code found a new TouchGFX folder is created automatically, and cause compiing error: i.e. error: no declaration matcheshere is the snapshot in my case1, initial case, ok and working2, foung ETH GPIO speed is low3, change speed4, rebuild the code, there are new folder (Drivers, LWIP, Middleware and TuchGFX) created automatically at low location , then cause many error as belowerror: no declaration matches I have no clue regaring such kind of symptom, please advice, thanks in advance.
I have successfully setup the LTDC to work with my LCD to display TouchGFX images with no problems. However, I am also developing a simple bootloader for USB software updates that I need to display text to the display without the use of RTOS or TouchGFX. Anyone have an example of how to achieve this with the STM32 LTDC?
Hicompiling with ArmClang 6.18 generates loads of warnings.Are there any plans to fix these. It is disturbing to get these warnings as they hide other problemsI attached a file with the warnings i get in the touchGfx codebaseRegards
..
I'm in need of creating animation widget, with each image to be displayed for different time frames.Example I have a set of 3 images to be displayed as animation.I want to display image1 for 2000 msimage2 for 800 ms and image3 for 4000ms?I tried doing it using custom container.I tried doing code changes in view.cpp but the results are not satisfactory.Has anyone tried animation of images manually?
For writing to QSPI flash, I suspend the touchgfx thread. In debugging mode, I get sometimes a hard fault. I thought it comes from switching from and to memory mapped mode of the QSPI, but now I think the problem is somewhere else. The fault occurs always in the same function:const touchgfx::Unicode::UnicodeChar * touchgfx::Texts::getText(TypedTextId id) const { return &currentLanguagePtr[currentLanguageIndices[id]]; }"id" has a reasonable value (1329), but if I look at the 32bit value in currentLanguageIndices[id] (points to 0x90b23954) the number is 0x94000092 which is just outside my QSPI flash size.There was an issue with Touchgfx 4.21.1 which sounds similar, but I have installed Touchgfx 4.21.2. The hardfault only occurs in a debugging session. Any ideas?
TouchGFX 4.21.13 is now out.Please follow this link to download it.4.21.3 Release details :Release date: March 14th, 2023New feature: This release enables the use of NeoChrom/GPU2D in combination with X-CUBE-FREERTOS from STM32CubeMX 6.8.0.Using 4.21.3 a second STM32U599/U5A9-TBS (TouchGFX Board Support) running with FreeRTOS is available within TouchGFX Designer 4.21.2 Release details :Release date: March 1st, 2023Bugfixes in TouchGFX Designer:Fixed crash related to interactions.Fixed crash related to deleting texts in search results.Fixed SVG picker showing duplicates when undoing selected SVG.Fixed physical button names not being visible in interactions.Fixed erroneous code generation for Dynamic/Static Graph widget.Fixed faulty memory usage related to texts.4.21.1 Release details :Release date: January 16th, 2023Bugfixes in TouchGFX Designer:Fixed bug where locking a widget would cause it to appear in position (0,0) when compiling the codeFixed faulty
i have a textArea called endPoint_Value which i would like to write both text from the TypeText ids using the setTypedText, but i also on different occations need to use the Unicode::snprintf & Unicode::snprintFloatThe textArea has a wildcard and buffer applied to in in TouchGFX DesignerUnicode::snprintf ( endPoint_ValueBuffer, ENDPOINT_VALUE_SIZE, "%d", *( menu_ActiveEndPoint->Value_u8 ) ); Unicode::snprintfFloat ( endPoint_ValueBuffer, ENDPOINT_VALUE_SIZE, "%02.1f", *( menu_ActiveEndPoint->Value_f ) ); endPoint_Value.setTypedText ( TypedText ( T_MNUDEVICE_CONFIG ) );each of these line work perfectly and the text changes as expected.However, as soon as i use the "setTypedText" the "snprintf" no longer seems to work on the textArea.I do use the endPoint_Value.invalidate (); It seems the textArea is no longer attached to the wildcard or something like that. i've tried the endPoint_Value.setWildcard (endPoint_ValueBuffer);, but that hasn't helped.Any
Hello,I am looking to use a 480x272 RGB565 display with the STM32F756ZG MCU. I have done the calculations to determine how much RAM and Flash I will need. I have estimated about 500 kBytes of Flash being necessary, so I do not require additional external Flash (Internal is 1 Mbyte). However, with the RAM, I am seemingly on the edge of its capacity, but am also getting confusing information from the datasheet. I would ideally like to have a solution that does not require external RAM (reduce pinout usage).RAM Calculation (Single Buffer):480 x 272 x 16 / 8 = 261.120 kBytesNow, there are two pieces of information in the STM32F756ZG datasheet.From their circuit diagram: From Section 2 of their Reference Manual: If I use the information from the circuit diagram, then it is sufficient. If I use Section 2, then I do not have enough. Because of this, I have two questions:1) Can I actually use 320 kBytes for the display or 240 kBytes?2) If 240kBytes, is there a way to reduce the displ
I've been drilling down into some code used to initialize the touch controller in STM32TouchController::init(), but am having a lot of trouble finding where in ST's api actually calls this init() function. I can see that the initialize() method on the static instance of TouchGFXHAL is called, which calls the parent class TouchGFXGeneratedHAL::initialize(), which eventually calls the top level parent class touchgfx::HAL::initialize(). In HAL.hpp I can see that the touchcontroller reference touchCtrl is stored by reference in the member variable touchController:/** * Initializes a new instance of the HAL class. * * @param [in] dmaInterface Reference to the DMA interface. * @param [in] display Reference to the LCD. * @param [in] touchCtrl Reference to the touch controller. * @param width The width of the LCD display, in pixels. * @param height The height of the LCD display, in pixels. */ HAL(DMA_Interface& dmaInterface, LCD& display, TouchController& touchCtrl, uint16
I installed the latest TouchGFX release 4.21.3 for my new project. Separately I now opened the project in the latest Cube Version 6.8.0. and I get a message that tells me that the CMSIS-Pack for my TouchGFX project is unknown.Where can I get the new corresponding release?The reason I opened the CubeMX editor was, that I get a compiler error which is create for the touch HAL file PaintRGB565Impl.h:compiling TouchGFXGeneratedHAL.cpp...../middlewares/st/touchgfx/framework/include/touchgfx/hal/PaintRGB565Impl.hpp(156): error: #20: identifier "blendL8CLUT" is undefined const uint8_t* src = &blendL8CLUT[*bitmapPointer++ * 3];../middlewares/st/touchgfx/framework/include/touchgfx/hal/PaintRGB565Impl.hpp(168): error: #20: identifier "blendL8CLUT" is undefined const uint8_t* src = &blendL8CLUT[*bitmapPointer++ * 3];../middlewa
I'm developing a device with embeded display running using TouchGFX which has set of valves and actuators and sensors. I have to control those valves and actuators based on user inputs and sensor readings. User inputs are given by the user from multiple scrreens. Also the display has no touch, screen navigation and option selection should implement using physical buttons.My question is in which thread those application logic and state machines of of all physical components should be handled. From wheres shoud I do the decision making. In DefaultTask or TouchGFX task ? i.e. in main.c or Model.cpp ?Thank you
I just received my new STM32F429I Discovery board and I have uploaded the TouchGFX example.The LCD looks like clumsy at touch and the y axis is someway inverted.See my short video here (Unfortunately as new member I cannot add links, links are in the attached file).I have found a video showing a demo which works fine.I have also tried the BSP example which is even worst.Is my LCD screen damaged or I am doing something wrong?
I'm trying to use images through the flex button, but, when i select some images, there isn't any visual update and selection update. I tried change the "released" image and continuous with "No image" after the selection in my library images.anyone know about this problem?
Hi all,We are testing the failure modes for the OCTOSPI memory mapped mode and there isn't much info in the documentation.The setup:* STM32L4S9ZIJ6* Dual external RAM chips (CY15B104QSN) configured for dual QPI DTR.* External memory used for TouchGFX driven display framebuffers (might be used for alternate purposes in the future).To simulate the failure of the external RAM chip we are reconfiguring the pins to GPIO operation after the initial configuration has finished and the device is operating normally.We are seeing the following symptoms after introducing the error.Error on data or CS linesCPU continues normal read/write operation with incorrect data reads. As far as we can see the QPI protocol for reads and writes is not able to even detect that the external device is present.Is there any way to check at runtime when this happens? Only solution we have come up is periodically reading/writing known data to check the operation.Error on the CLK lineThere seem to be two very different
I'm trying to load some text data into a scroll list. Those texts are generated at runtime. I want to show them as list items. Also, the number of elements is not fixed. No sharply defined upper limit and lower limit for the number of elements.
If you use TouchGFX generator to generate examples for the STM32H750, I am confused about the CubeMX IOC generated for the LTDC peripheral. The IOC is setting the LTDC framebuffer address to 0. I don't understand this, only ITCM is at this location. Was there some kind of DMA that I'm missing at this address? How is it working?
I create new project from touchGFX, by adding 5 simple widgets , generate code, run simulators, run targer all are working and success. Open the file with CubeIDE, build and run ars also OK.Enable and set up ETH, LwIP, freertos using CubeIDE are ok.Try to build up ethernet and reference following link :https://community.st.com/s/article/How-to-create-project-for-STM32H7-with-Ethernet-and-LwIP-stack-workingAfter downloading to eval2, GUI screen could not display normally, just color line in whole LCD And go back to reset to default configuration of ETH, Lwip, rebuild and download again, GUI display is normal.Since I have enable Cortex Memory Protection region 0,1 (follw the instruction) , is it the problem cause the issue? I was wandering is that mean heap memory conflict between TouchGFX frambuffer and protection region ?I browse many examples from internet, but there are no similar case as mine, i.e. STMH743 EVAL2 + LWIP +ETH +FreeRTOS + TouchGFXwhat I saw most closely is STMH74
Hi,After compiling my project I noticed that I have the flash on my H743 is almost full. When I checked the Memory Details under the Build Analyser I found that all of my screen functions repeated two times. The attached sreenshot shows more clearly what I mean. Could anyone tell if it is a necessity for some reason or am I doing something wrong? Many thanks,Namik
Hi,I have a horizontal scrollwheel where i want to scale the item when it is animating to the next position. I am a bit lost how to start with this. I had a look at move animator but that doesn't seems like the proper way. I need a hook from the scrollwheel animator I assume. I created a selected style where the scale is 1 en the regular style 0.5 but that doesn't look good. I am using a STM32G0 + 128x128 grayscale oled display
Hello all, I dynamic create widget by 'new' and delete by 'delete', but the project crash when delete it. Are there any examples of that used ? I have 100 custom containers in a screen, but only one will be displayed at a time.So I dynamic create one of these custom containers when used and delete when unused.
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.