Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
How to rotate the entire screen by 180 degrees landscape orientation?
The compiler throws warnings in touchgfx library files when compiling my project. I would like to know how to solve this. Will it create any issues? I'm using stm32cubeide and gcc-arm-none-eabi-8-2018-q4-major compiler.
Hi,I'm using list layout for my UI application. I'm holding some settings on the list and saving that data into flash. But when I erase an element(for example element 3 out of 6). element 3 erasing on the screen but not from the buffer. So when I write the data to flash I element 3 is still there but 6 is gone.In here I don't have any elements and data on flashHere I wrote data on flashAnd here I erased second element (name two) and it didn't erase but number four is gone.I'm using list example's code for erasing.void listElement::deleteAction() { if(viewCallback-> isValid()) { viewCallback-> execute(*this); } } void settingsView::listElementClicked(listElement& element) { list.remove(element); scrollCnt.invalidate(); }
..
I'm trying to create a screen positioning screen, to adjust the location of the screen using the LTDC registers. I've used the BPRC registers, and the HAL_LTDC_SetWindowPosition() function methods.My screen has 4 buttons for adjusting all directions in X, and Y.When a limit is reached, I setInvisible() the button.==============================I've created a routine to adjust the BPCR registers, and this moves the display around.But is is limited to a small range of values in Y, only 0..23. Greater than that generates and LTDC_ER_EXCEPTION. (X-Range is 0..100+) I've also found if NOT called from the VSync interrupt (OSWrappers::signalVSync() routine), I get random LTDC_ER_EXCEPTION. I've created a callback mechanism, so this routine is called from the VSync interrupt.callback(){ // Need to change LTDC_BPCR register only. hltdc.Init.AccumulatedHBP = x; // 46, 0..100 allowed hltdc.Init.AccumulatedVBP = y; // 23, 0..23 allowed (24 locks up the GUI.) &n
I want to put some code ( in the Code box in touchGFX, execute C++ code) to execute when button is clicked. I see some codes around but nothing seems to be working.I want to get data fro ADC and draw a graph.So my question is: is there a proper code to draw a line from point A to point B ?
Hi,I'm using TextArea with Wildcard for displaying Text Dynamically at the rate of 300ms on STM32F469I-Discovery board and the TextArea Flickers while updating Text at 300ms rate.I have reduced the LCD clock to 10Mhz and checked as suggested by someone in the blog but no improvement is seen. Please Refer code snippet:UARTMsgReady() is called from CMSIS V2 FreeRTOS Task at the rate of 300ms to update the Text on the TextArea. I'm trying displaying string with 18 characters and the TextArea buffer size is set to 21.void Screen1View::UARTMsgReady(){ if(uartMsgNuf[0] == 0) { return; } Unicode::strncpy(textArea1Buffer,(char*)uartMsgBuf,TEXTAREA1_SIZE -1); textArea1.invalidate();}Can anyone guide me on how to solve this flickering problem in TextArea while updating Text at the rate of 300ms? Does STM32F469I-Discov
Hi, I am building an application for a Custom Board using STM32F746 and TouchGFX. I followed all the instructions found : https://support.touchgfx.com/docs/development/ui-development/scenarios/loading-images-at-runtime/ But i can not print an image stored in SD . //----------------------------------------------------------------------------------------------------------------------- // BoardConfiguration.cpp //----------------------------------------------------------------------------------------------------------------------- static LCD16bpp display; static uint16_t bitdepth = 16; static uint32_t bmpCache = (uint32_t)(0xC0008000); // SDRAM namespace touchgfx { void touchgfx_init() { uint16_t dispWidth = 800; uint16_t dispHeight = 480; HAL& hal = touchgfx_generic_init<STM32F7HAL>(dma, display, tc, dispWidth, dispHeight, (uint16_t*)bmpCache, 232000, 3); ... //--------------------------------------------------------------------------
Hi,I'm trying to change screen with button on a screen and hardware button.But, I don't want to add another screen because some parameter is shared,So, I use pointers for some widgets and generate/delete the widgets at runtime.However, when I press the trigger key to change screen during pressing the button on the screen and release the button after the screen has changed, the program has crashed.I think that the program try to call "Button::handleClickEvent" of the button that has already deleted but failed, it has crashed.Here's a some sample code.class sampleScreen { ~~~~~~~~~~ virtual void setupScreen(); ~~~~~~~~~~ void buttonPressed(); void triggerKeyPressed(); void switchScreen(); ~~~~~~~~~~ Button* button; ~~~~~~~~~~ } sampleScreen::setupScreen() { button = new Button(); ~~~~~~~~~~ add(*button); getRootContainer().invalidate(); } void sampleScreen::buttonPressed() { switchScreen(); } void sampleScreen::triggerKeyPressed() { switchScreen(); }  
Hello,When building my project using touchgfx, I generate a specific binary file for some images. So for the testing purpose I create a section with only one image of one black pixel. So basically this image in binary format should be around 2 bytes in 16BPP. However the binary seems to include in addition to this image some debug information like "GCC: (GNU Tools for ARM Embedded Processors 6-2017-q2-update) 6.3.1 20170620 (release) [ARM/embedded-6-branch revision 249437]" etc. It does not seems to have a specific release or debug configuration in the makefile. the overhead in the in quite unlikely and in some of the other binary, I also have some absolute path of my own computer. Is there any way to remove all those information ?Regards,
Hi,I am working on STM32L4R9_Discovery board. I have created a blank TouchGFX project and i have added around 20 images to the project so that image data will be written to the external flash. And after compilation, size of the target.hex file is shown as 11694700 Bytes(11.7MB) and my flash size is 64MB. After compilation i selected Run Target option which is present on the TouchGFX Tool to download code to the kit. Sometimes download gets successful. But Most of the times download fails after download initiation and gives below message. Erasing memory corresponding to segment 0: Erasing internal memory sectors [0 43] Erasing memory corresponding to segment 1: Erasing external memory sectors [0 175] Download in Progress: ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% Û 3%Û 4%Û 6%Û 9%Û 10%Û 12%Û 14%Û 17%Û 18%Û 20%Û 23%Û
Hello,I am new to Touch GFX. I have build a GUI in touch Gfx and then generated the code. But when I tried to compile the generated code in Keil IDE , It shows the following errorsBuild started: Project: STM32F769I_DISCO*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'Build target 'STM32F769I_DISCO'Clean started - Project: 'STM32F769I_DISCO' deleting intermediate output files for target 'STM32F769I_DISCO'assembling startup_stm32f769xx.s...compiling CortexMMCUInstrumentation.cpp...../TouchGFX/target/CortexMMCUInstrumentation.hpp(4): error: #5: cannot open source input file "platform/core/MCUInstrumentation.hpp": No such file or directory #include <platform/core/MCUInstrumentation.hpp>../TouchGFX/target/CortexMMCUInstrumentation.cpp: 0 warnings, 1 errorcompiling Buttons.cpp...../TouchGFX/target/Buttons.cpp(39): error: #5: cannot open source input file "touchgfx/hal/Buttons.hpp": No such file or directory #include <
Hello, I want to write time on LCD in format 00:00:00 (hh:mm:ss). I use simple text area object and font I use is Proxima Nova Semibold. But the problem is that text is moving around because each char have different width. I would like to each char stay in the position.I am new to Touch GFX framework.I manage to achieve what I need using a monospace font. But I need to use Proxima Nova Semibold. For now only though I have to write each character separately with different position, but is there some other option? Thank you!
Hello.I am building a GUI for STM32f769 discovery baord on touch GFX . But every time when I generate the code, only EWARM and a Cube Mx project is being generated. At the other hand, On touch GFX website, It is mentioned that It can generate the code for Keil also. But in my case It generating only EWARM project.Then I opened the generated cube mx file, and generated Keil project from the Touch gfx generated cube Mx project.In this case the Keil project was generated but there were 11 errors.Am I doing something wrong?Please guide me.Regards,Manvendra
I'm using Keil directly to STM32H7 with CMSIS core and Device startup only (without HAL). The inits & peripheral usage has implemented directly to registers.Is there any way (documentation/API?) connect to TouchGFX, when functionality is implemented like this?Thanks in advance.
I see that there is integration with Cube IDE and Touch GFX. But I need to figure out how to set it up. I see a lot of demos showing the fancy graphic but it is usless if nobody shows how to actually write the code. I see a lot of people get discouraged if you cannot find out how to start with some basic code.I downloaded latest cube IDE and Touch GFX, it will not compile simple the code, I get bunch of errors.
Hello,On a custom board (similar to F746-Disco board) i was able to setup a 5' display with 800*480 resolution on RGB565.Now, i would like to support bigger display with same board. As i checked, there are many 7+ inches displays with RGB interface.Is there any limitation on the maximum resolution? As i read, with F7 i can reach up to 1024*768 resolution. This number is related with the maximum frame rate or i could go to higher resolutions by reducing the frame rate?
Hi everyone!I'm trying to port TouchGFX over to the CoreH743I board and I'm running into some trouble at the step of trying to write to the screen from main memory.https://support.touchgfx.com/docs/development/board-bring-up/how-to/03-display-internal/Thanks to some help here, the code is no longer throwing a hard fault or anything like that, but it is simply not displaying to the screen. I've tried it connected to external power to make sure the screen has power and still nothing.I have confirmed that the board and screen work with sample code for STemWin and Keil. I copied the screen settings and clock settings from that project, but it also uses the external RAM on the board so I think my problem lies somewhere in addressing the correct area of RAM. I can't safely debug while connected to external power, so if anyone can tell me how to do that, I'd really appreciate it. I don't want to risk frying the computer.I have attached the .ioc file and the main.c file, the only two files I c
Hi,I'm trying to port TouchGFX to the CoreH743I board and I'm following the instructions on how to do that. In part 3 on bringing up the framebuffer I'm running into two problems:The internal CubeMX in CubeIDE is not generating the LTDC_IRQHander() function in stm32h7xx_It.c, so I can't really time my frame rate.The other problem is a hard fault being generated when HAL_Init() tries to call NVIC_SetPriorityGrouping(PriorityGroup) by calling NVIC_SetPriorityGrouping(PriorityGroup);The debugger makes it past the assert but then hard faults on the call to NVIC_SetPriorityGrouping(). It does not allow me to step into that function - it immediately goes to the HardFault_IRQ handler.EDIT: it would help if I attached the .ioc file... so here it is.Any ideas?Thanks
I am using STM32L4R9 Evaluation board for my development. When we generate a Demo Project from the TouchGFX Designer, how do we check that how many Frame buffers are used by default and how to check whether we are using any External RAM to store the Frame Buffer.Regards,Bala
My original problem is when I try to see a GUI example running, when I hit on "Run Simulator" the operation fails and in the detailed log appears the following message:"Generate Assets make -f simulator/gcc/Makefile assets -j8 0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487 AllocationBase 0xC90000, BaseAddress 0xDC0000, RegionSize 0xCD000, State 0x2000 C:\TouchGFX\4.13.0\env\MinGW\msys\1.0\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0 make: *** [assets] Error 1 simulator/gcc/Makefile:32: recipe for target 'assets' failed FailedFailed"I tried with different application templates and UI templates but the error is the same
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.