Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I have an issue, apparently with the version of FreeRTOS that is included with TouchGFX 4.16 and dynamic memory allocation in C++. I have an extensive code block that assigns std::string variables to various literal strings as the user switches from page to page in the application. I then convert these in the calls from the model to presenter to screens as *char (then converting to unicode) without a hitch. The problem is that a string of more than 16 characters (including \0) blows up the program when C++ asks for the dynamic memory allocation for any string greater than the standard length (in this case 16) (see snapshot from STM32CubeIDE). The system calls new() and it blows up. The code works great in the simulator and works on the STM32 *IF* I keep the strings <16 chars.Certainly I'm not the one with this issue! Is there a wrapper for FreeRTOS new() or better workaround - other than rewriting 3000 lines of code to assign the vars as char arrays?Note that the issue is NOT with t
I am always indebted.I have a ListLayout in touchgfx template.The list shows his icon and a fixed string.I want to add a variable string to this.I want to display a variable string using "% d", "% f", "% s" of sprintf ().How should it be realized?A screen example is attached.Please give me advice.
I used ImageMagick to change a image into 256 colors that I want to used L8_RGB565 image. magick convert ***.png -colors 256 ***_L8.pngBut the TouchGFX compiler returned an error : ERROR: Too many colors (762) for palette. Consider using RGB565. ERROR: L8_RGB565 image assets/images/***_L8.png has too many colors for palette. Consider using RGB565. ERROR: Could not generate image dataHas anyone encountered such a problem?
Also, is there a way to add a drop shadow to this or any other font?Thanks,Will.
HiI've declared virtual void handleTickEvent() in the header file of my container.In my cpp file of the container I would like to update my battery bar on every tick:void BatteryBar::handleTickEvent() { if(tickCounter >= 100) { tickCounter = 0; } UpdateBatteryBar(tickCounter++); }I'm not getting it to run. It never enters to handleTickEvent().What else do I have to do to enable the tick event?RegardsDejan
I made a project in touchGFX designer 4.16.1 and imported it to STM32cubeIDE , for board stm32F769I disco. there I ran debug and it ran OK yesterday. today morning when I tried to run again it fails in call to prvPortStartFirstTask and enters HardFault_Handler.I don't know why. can you help ?thanks.
So I create a simple custom container containing just a box. Then I create 3 instances of this custom container in Screen1. I modify the custom container class to detect single click. But how to detect long press > 1s on any of these 3 containers?Attached is the partially done of the project, it is able to detect single click but not long press. Can someone give me some pointer or maybe complete the project?So the final objective is for function onLongPressHandler() in CustomContainer1 class called when there is long press.
I'm using an event to update indication statuses in my screen. There are four independent events that update the screen in the same fashion (with different images toggling for active/inactive). I added in another indication to show that when any of the events are registered it would indicate the 'global' status as well as the individual statuses.The individual statuses all indicate properly, and debugging shows the program is reaching every one successfully. However, in my global status, only the fourth event (zone4heatcallstatus) indicates the global indication.The code is identical (except numbers) for all. Any idea why this could be happening?void MainMenuView::setHeatCallTextStatus(uint8_t status) { if(status == 0) { textHeatCall_Active.setVisible(false); textHeatCall_Inactive.setVisible(true); textHeatCall_Active.invalidate(); textHeatCall_Inactive.invalidate(); } else { textHeatCall_Active.setVisible(true); textHeatCall_Inactive.setVisible(false); textHeatCall_
Hi, I would like to ask as I never saw any effective example, how could I effectively update a lot of information from backend to frontend.Lets assume I have 40 variables of difetent types for example uint16_t, int8_t, bool, is there any effective way to implement this? For now I can only imagine creating queue for every variable type, then sending it to model and calling proper presenter functions.Also is there any way to effective implement presenter and view functions instead of making function for each variable?Thank you!
As we know STM32CubeMX generates MSVC project file .sln for simulation project. I find this is really handy to help developers GUI while waiting for hardware ready.But it is common data in GUI comes from outside dedicated task, then the Model class need to read in model::tick() whether there is new message in queue. I want to simulate this while waiting for real board to come. But I wonder if this is actually somewhat available somewhere by ST?So we need a mock functions to simulate FreeRTOS or CMSIS OS wrapper to create, read and write queue.
So as I notice though the default TouchGFX RTOS is FreeRTOS but its usage is wrapper by CMSIS OS layer in cmsis_os.h. However I could not find wrapper for FreeRTOS API to overwrite queue xQueueOverwrite(). Why so? Is there any setting I need to do?I try to search FreeRTOS setting in CubeMX but I can't seem to find related setting for it, but not too sure.
Good day, Everyone.Here's the project:I have an old Nintendo 3DS. It's screen resolution is 800x240, running at 60fps. Each of the RGB colors gets 4 bits so it's pretty low color resolution. I'd like to read the frame color data from the pins and dump it onto the PC to display it.What STM solution is powerful and fast enough to tackle this sort of a task? Each frame is 800x240 pixels and each pixel is made up of 12bits of color data. that's 2,304,000 bits of data (2,304kb or 2.304 mbit) if data, going 60 times every second. If my self reminder math is right.Some have recommended to look into UVC_Camera protocol as it makes the controller appear like a video device, which sounds so nice. the video stream would simply appear as webcam input which can be easily recorded with OBS and I don't have to worry about software.Any advice on what I should be looking into that's powerful and fast enough for this sort of an application?
I have a screen and two buttons. With one I change the value, e.g. uint8_t sec. The other one changes the screen. How to set that when sec = 0 it is impossible to change the screen. It could be changed with other sec values. greetingsAndrzej
Hi there,I would like to implement a list with draggable elements to set a new order in the list. Is this possible with the standard list implementation or do I have to implement my own list logic?Kind Regards
Hello, I'm developing a project on stm32f746igt6. I use open746-c (stm32f746igt6) board. I could not create a project that works with cubeide. the screen is solid black. If I load the demo code that came with open746-c. The screen works. My connections are correct. Is there a sample cubeide and touchgfx project file for open746? I looked at other question titles. I couldn't find any solution. There are custom board videos with stm32f746g discovery but not enough. Demo Code WorkingThe project created with cubeide and touchgfx does not work.pins are defined according to the board.Best Regards
STemWin v5.44 do not support NT35510 based TFTs. But it possible to rewrite LCDConf_FlexColor.c and TFT working good. But problem found with text output by GUI_ functions. This pcs of code from STemWin manual working wrong and produce the result like in the pic. On the pic left is right output, on the right - from my TFT. What is wrong here? // UM03001_v6.18.pdf page215 text output snippet GUI_SetFont(&GUI_Font8x16); GUI_SetBkColor(GUI_BLUE); GUI_Clear(); GUI_SetPenSize(10); GUI_SetColor(GUI_RED); GUI_DrawLine(80, 10, 240, 90); GUI_DrawLine(80, 90, 240, 10); GUI_SetBkColor(GUI_BLACK); GUI_SetColor(GUI_WHITE); GUI_SetTextMode(GUI_TM_NORMAL); GUI_DispStringHCenterAt("GUI_TM_NORMAL", 160, 20); GUI_SetTextMode(GUI_TM_REV); GUI_DispStringHCenterAt("GUI_TM_REV", 160, 36); GUI_SetTextMode(GUI_TM_TRANS); GUI_DispStringHCenterAt("GUI_TM_TRANS", 160, 52); GUI_SetTex
There ia need to flip the display screen up and down, can I change the direction by config the TouchGFX designer proj or the STM32 LTDC or DMA2D parameters? Thanks
I am trying to create a language selection menu. I have managed to inflate the list. However, the callback for element selection is not firing. Please advise. Following is my code.#ifndef CONTAINER_MENU_HPP #define CONTAINER_MENU_HPP #include <gui_generated/containers/Container_MenuBase.hpp> #include <texts/TextKeysAndLanguages.hpp> class Container_Menu : public Container_MenuBase { public: Container_Menu(); virtual ~Container_Menu() {} virtual void setupListElement(TEXTS iconTextID, int index); virtual void setAction(GenericCallback< Container_Menu& >& callback); virtual void setSelection(int selected); virtual int getIndex(); virtual void selectAction(); virtual void initialize(); protected: int index = 0; GenericCallback< Container_Menu& >* viewCallback; }; #endif // CONTAINER_MENU_HPP#include <gui/containers/Container_Menu.hpp> #include <touchgfx/Color.hpp> Container_Menu::Container_
Assume I create a custom container , containing just a box with a wild card text. Then I create 3 widget instances from this custom container. Now I want for each of container to have different text in the widcard text. How can I do this? How can I access individual widget member in each of the custom container instance?
It consists of several views.When the power is turned on, screens other than the startup screen may be displayed with a glance.How can I get rid of this flicker?Waiting for a while at startup didn't work.Thank you.
I have tried to use RGB565 format to store images, the size is too big.Then I used L8_RGB565 format, the size is reduced by nearly half, but it didn't feel good enough.L8_RGB565 image is divided into two pieces of data: pixels and CLUT. I think the CLUT part is perfect, but the data part can be compressed a little bit. With lossless compression such as RLE_8, the entire image size can be further reduced. In fact, I have also done this test and it is quite practical. Doing so requires to modify the image data table, and this data table is automatically generated by TouchGFX according to the image format. Doing so destroys the original style and may introduce many new problems. So I finally gave up.Store the JPEG image data in the SD card, import all the JPEG images new screen used and release old screen data when screen changed. Due to the need to import a large number of images when changing the screen, and also need to further processing of JPEG images into bitmap format, so display l
Hi, I'm new to this board. I've decided to switch from ATMEL to STM µControllers after Microchip bought ATMEL and apparently decided to phase out ATMEL Studio.I bought the STM32H745 Discovery board assuming TouchGFX would be working on it. However, after downloading the software package, it says that this MCU doesn't support TouchGFX. Is there an alternative graphics engine available? Or do I have to return the demo board for a different one that allows me to prototype for use with LTDC on an RGB interface?
According to the datasheet, F429VI has no pin for LCD_R0, LCD_R1 andLCD_B1. does it mean the chip doesn't support 24bits colors (I don't want to use FMC instead of LCD-TFT)?(the F429 with more pins has all of the color pins, according to the pin definitions )
I have a screen and two different backgrounds. I have a Toggle button. How to change the background with this button?Andrzej
..
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.