Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
..
I have a scroll wheel with selected item. Is it possible to update the selected item, e.g. its font color, when the modelListener notifys the screen that a certain event has happened?Example: Let's assume the model contains a counter and notifys the screen if the current value is even or odd. For even values, the text of the selected item in the scroll wheel should be blue and for odd values green.How can I achieve this? I managed to kind of do it by calling a function that does the follwing:void ScrollWheelScreenView::updateSelectedItem { touchgfx::Drawable* d = scrollWheel1SelectedListItems.getDrawable(0); ContainerSelectedScrollItem* cc = (ContainerSelectedScrollItem*)d; cc->setOddOrEven(); cc->setTextAndIcon(indexCenterItem - 1) }This function is called in the presenter-implementation of the notify-function. The text color is updated, but the text itself is not always correct: If the odd/even-update happens while scrolling, the text of the next or previous item is displa
Using TouchGFX Designer 4.22.0Why it is not possible to make a circle progress much like a car dashboard would have. Zero is at about 7 o'clock and full is at 4 o'clock.The circle progress always starts at 12:00. No mater what parameters I enter.Is there another method of achieving similar effect?
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?
Is there a simple way to use QT for stm32 applications instead of touchgfx?Or this is not done yet? I would be talking of stm32h743xx with freertos as the environment.@Romain DIELEMAN
I am using STM32H750VB Custom Board. It has 16bpp parallel RGB interface with an TFT LCD of resolution 800x480. As I have no external memory, I am using RAM_D1 of 512KB as framebuffer resulting in, as per the calculation, resolution area of 800x300 in TOUCHGFX screen. Single buffer with allocation by address(0x24000000) is used in CUBEMX.QUADSPI flash used is of 16MB and have created partition of 2MB of application code and rest for the asset of TOUCHGFX . Every precaution which needs to be taken care of in LD file is done. When the code is generated, touchgfx_taskEntry(); is called from TouchGFX_Task(); which contains hal.taskEntry(). Have modified taskEntry() as given below in TouchGFXHAL.cpp :void TouchGFXHAL::taskEntry(){enableLCDControllerInterrupt();enableInterrupts(); OSWrappers::waitForVSync();backPorchExited(); for (;;){OSWrappers::waitForVSync();backPorchExited();}}TouchGFX_Task() specifications are:priority :ospriority normalst
You just read the title and were like: "some People have the weirdest problems"Unfortunately thats literally the case with me, and I am like 70% sure its a hardware problem but I'll ask here in case a knowledgeable person has dealt with this before.Here is the problem: Context:The LCD was working completely fine until literally and I mean like completely randomly stopped working normal. I've tried changing the wire and didnt work, the board is running demo software from TouchGFX and I'm 99% sure its not a software issue since the same software was working perfectly normal before. Worst part is that I didnt even do anything that would cause a hardware problem, it was working normal and then I reprogrammed the software (same software) and it was like the current state. Touch controller working fine as well, any other sample code I flash, also gives same result. It's like the screen colours are so dim, kinda hard to explain but I think the only one who can give a solution is so
Hi, hoping someone can help with the following issue I'm experiencing. I understand that my setup might fall outside of the supported enviroment but I thought about posting the question anyway.I'm running TouchGFX 4.21.3 on a VM with Windows 11 ARM in a Macbook Pro M1 Max. TouchGFX access the project files through a map network drive. Everything works except every time I save the project or compile I get a message saying that the project files was externally modified which isn't the case it's the app itself who is modifying it. Normally pressing Yes keeps things workingWhen modifying anything on the Texts Tab I also get the same error but indicating that the text.xml file was modified here pressing Yes or No will cause the app to crash with the following message: Object reference not set to an instance of an object.I've attached the logs from the application in case they provide more details, is there any way to increase the logs verbosity?What options can I try? Do you think having th
Hello everyone,I would be mentioned this topic here which is the same.I am using KeyboardWidget of TouchGFX in my project and need to print the value from keyboard.getBuffer() into a const char to draw it again in QRCode.I have tried all the ways but no result and got some errors.char QRBuffer[20]; void MainView::CreateClicked() { // Show the entered text in the text box on the display Unicode::strncpy(textAreaQRBuffer, keyboard.getBuffer(), TEXTAREAQR_SIZE); // Copy the entered text into the char string to drawing QRCode Unicode::snprintf(QRBuffer, sizeof(QRBuffer), "%d", textAreaQRBuffer); // Drawing the QRCode CreateQR(); }I have used strncpy but also no way! I have tried to casting the buffer value like this but also not working:char* QRBuffer = (char*)textAreaQRBuffer;Any suggestions?Thanks, Mahdi
I have created a simple TouchGFX GUI on my STM32F746G-Disco Board. Everything works well. In my project I need a DAC . So I switched on DAC1 in CubeMX. But when I do so and flashing the code to the Board the screen do not show the genereated UI anymore. Even when I switch off the DAC, the screen remains blank. What is the Problem there and how can I solve it?
Greetings AllFirstly, I am a beginner when it comes to using STM32 microcontrollers. For my final-year project I intend to implement a GUI using my the abovementioned board to display ADC values. I followed the prompts of a video on YouTube where TouchGFX and STMCubeIDE are used. In place of STMCubeIDE, I used Keil. The video uses one ADC input, whereas I need four. I built a code that compiles (attached). My problem is that I even after loading the code onto my board and pressing the reset button, the display is still blank (white). What could the underlying cause(s) of this be? Any assistance will be greatly appreciated as this is a pressing matter.
I used STM32CubeIDE to create the LCD_DSI_CmdMode_DoubleBuffer for the STM32F769I-DISCOVERY board. It works fine, but I made some modifications to just draw a rectangle: if 1 BSP_LCD_SetTextColor(LCD_COLOR_RED); BSP_LCD_FillRect(0, 0, 800, 240); #else /* Display example brief */ LCD_BriefDisplay(); /* Copy Buffer 0 into buffer 1, so only image area to be redrawn later */ CopyBuffer((uint32_t *)Buffers[0], (uint32_t *)Buffers[1], 0, 0, 800, 480); /*Draw first image */ CopyBuffer((uint32_t *)Images[ImageIndex++], (uint32_t *)Buffers[front_buffer], 240, 160, 320, 240); pend_buffer = 0; #endif /* Send Display On DCS Command to display */ HAL_DSI_ShortWrite(&(hdsi_discovery), 0, DSI_DCS_SHORT_PKT_WRITE_P1, OTM8009A_CMD_DISPON, 0x00); /* Refresh the LCD display*/ HAL_DSI_Refresh(&hdsi_discovery); #if 1 /* Infinite loop */ while (1); #else /* Infinite loop */ while (1) { if(pend_buffer < 0) { /* Prepare back buffer */ CopyBuffer
I'm trying to set up a "choose your language" page in my application, so far without success. The main issue is trying to put texts from over 40 different languages, and around 10 different sets of characters, on the same screen.I read about the Binary translations tool, and I want to know if it can overrule the "single language for all" situation.if not, how'd you set up 1 screen with, say, text in Arabic and Japanese?
Hi since I am very new to touchgfx this is probably a wrong or already answered question. How can someone has a user edited text line or text area with a virtual keyboard? I mean to have a text input widget that user selects it and a keyboard opens on screen so user can set the text. Is it possible?
I have bought a riverdi display RVT50HQTNWC00, i want to know if at the backlight pins that the typical is 12volts i can connect a 12vdc power adapter for test or i need to use a led driver like TPS61169.
Hi,I am trying to make a relay driver with STM32H750DB-K, so I could switch the relays with toggle buttons on display, but I have a difficulty writing on digital pins.When I don't generate code from TouchGFX (so starting from scratch) and just write on output pin E3 calling the function HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_SET); in while function of main.c the voltage on pin E3 is set to 3.3V as expected. But when I generate a simple code with TouchGFX (just a toggle button) and write function HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_SET); in while function of main.c (which is in TouchGFX folder) the voltage on pin E3 is 0V. I tried this on several pins, but it is always the same.Is there something obvious that I am missing? Does anyone know the solution to this problem?
Hello,I am running on the STM32H725AGI6 on a custom board. I am trying to use the TouchGFX GUI with the LTDC interface (RGB565). I am trying to run a firmware that I had previously working on another of the H7 series (STM32H7B3IIT6). The hardware is identical in all aspects, except for changing to the AGI6 MCU. I am running the debugger to try to isolate the issue and I observed that the model::tick() function was only called once. Additionally, the TouchGFXHAL::taskEntry() is also only called once. On the IIT6, this problem was not present. I have tried the following so far:- Increased the heap size (it says I still have plenty of heap available)- Increasing priority of the TouchGFX- Removing the BLE_Task I have to prevent multiple tasks from causing issues None of these solutions have worked yet. Does anyone know what would cause a task to only be called once? Edit:I also enabled vApplicationMallocFailedHook(void) to see if it entered this functio
Hello, I am using STM32H7 with a circular display (driver HX8363-A). One of the problems that I seems to have is that although on the TouchGFX software the content looks nice, the moment I display that same content on the physical display, it looks horrible. Every component that I tried displaying has very sharp edges and thus I suspect it has something to do with anti-aliasing not being turned on (see the picture). Is there a way to enable anti-aliasing or do you think this is something else?I know that the display that I am using CAN look normal, since I confirmed this by using the display manufacturers devkit, which however runs on Android OS.
I am using 4.16.1 TouchGFX designer tool. Is it possible to generate QR code for a given string and PIN code in run time and display? Please advice.
Hello!I have old project. It has file TouchGFXGeneratedHAL.cpp, where I can see codevoid TouchGFXGeneratedHAL::initialize() { HAL::initialize(); registerEventListener(*(Application::getInstance())); enableLCDControllerInterrupt(); enableInterrupts(); setFrameBufferStartAddresses((void*)0xD0000000, (void*)0xD0200000, (void*)0); /* * Set whether the DMA transfers are locked to the TFT update cycle. If * locked, DMA transfer will not begin until the TFT controller has finished * updating the display. If not locked, DMA transfers will begin as soon as * possible. Default is true (DMA is locked with TFT). * * Setting to false to increase performance when using double buffering */ lockDMAToFrontPorch(true); }I updated CubeMX and TouchGFXdesigner to last version, and I sawvoid TouchGFXGeneratedHAL::initialize() { HAL::initialize(); registerEventListener(*(Application::getInstance())); enableLCDControllerInterrupt(); enableInterrupts(); setFrameBufferStartAd
Why list layout buffer allocates so much RAM? (30KB) I want to create 60 elements in list. How to reduce that memory usage? Maybe someone has any tips.
I'm fairly new to TouchGFX as well as C++ inheritance so trying to understand how to implement a custom virtual function when a key is released. I see when I create an interaction in touchGFX so when a key is pressed it calls a virtual function...Which creates the following in the base class of the custom container...I understand how to override the startBrewCycle() virtual function in the non-base cpp file which is called with the pressed even in the callback below...How can I implement another virtual function stopBrewCycle() when the same button is released?
Hi all,I would like to blend a ARGB8888 image onto my RGB565 frame buffer. Is this possible?The code I'm currently testing (that does not work) is the following: //configure DMA2D options LL_DMA2D_SetMode(DMA2D, LL_DMA2D_MODE_M2M_BLEND); LL_DMA2D_SetOutputColorMode(DMA2D, LL_DMA2D_OUTPUT_MODE_RGB565); LL_DMA2D_SetOutputRBSwapMode(DMA2D, LL_DMA2D_RB_MODE_REGULAR); //output LL_DMA2D_SetOutputMemAddr(DMA2D, (uint32_t)OutAddr); LL_DMA2D_SetLineOffsetMode(DMA2D, LL_DMA2D_LINE_OFFSET_PIXELS); LL_DMA2D_SetLineOffset(DMA2D, 0); LL_DMA2D_SetNbrOfLines(DMA2D, LCD_HEIGHT); LL_DMA2D_SetNbrOfPixelsPerLines(DMA2D, LCD_WIDTH); //background config (same as output) LL_DMA2D_BGND_SetColorMode(DMA2D, LL_DMA2D_INPUT_MODE_RGB565); LL_DMA2D_BGND_SetMemAddr(DMA2D, (uint32_t)OutAddr); LL_DMA2D_BGND_SetLineOffset(DMA2D, 0); LL_DMA2D_BGND_SetAlpha(DMA2D, 0xFF); LL_DMA2D_BGND_SetAlphaInvMode(DMA2D, LL_DMA2D_ALPHA_REGULAR); //foreground (input) LL_DMA2D_FGND_SetColorMode(DMA2D, LL_DMA2D_INP
Hi all,I upgraded to TouchGFX 4.22 from 4.21 and now the simulator doesn't work. It was fine with the projects before and I haven't change much. The log (below) shows that it can't find cmsis_os.h in model.cpp. It seems to be the same error in the other projects. The file is not missing. I can "go to declaration" of cmsis_os.h inside model.cpp and it opens up cmsis_os.h. I need that header because I'm checking a freeRTOS queue inside Model::tick()What's the problem? ThanksRun Simulator Generate Done Generate Assets make -f simulator/gcc/Makefile assets -j8 Reading ./application.config Reading ./target.config Done Post Generate touchgfx update_project --project-file=simulator/msvs/Application.vcxproj Done Post Generate Target touchgfx update_project .cproject file: ../STM32CubeIDE/.cproject Writing STM32CubeIDE project file: ../STM32CubeIDE/.project Writing STM32CubeIDE project file: ../STM32CubeIDE/.cproject Done Compile make -f simulator/gcc/Makefile -j8 Readin
Hi,I am using a custom board with stm32H473 to driving a GUI on 9 inch RGB TFT screen.I have 10 screen which when I switch between them and main screen, some times TouchGFX hangs on this state, but other threads and debugger work fine, The only difference between main screen and others is there are some container witch they monitor some information and include Text and progress bar. I have read all related subject here but no useful hint found... TouchGFX just freeze on main screen switch moment, there is no hang when we are in this screen which initiated successfully.I have use external SDRAM and QSPI Flash.Any help is appreciated in advance.
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.