Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello everyone.I am trying to build my project using the Link Time Optimization. For this propouse, I added -flto to "Other flags" list in Miscellaneous either for "MCU GCC Compiler" and "MCU G++ Compiler". The problem is that during the link proccess, the folowing error message is displayed and link fails. ../TouchGFX/generated/texts/src/Texts.cpp:280:28: error: 'indicesPt_br' causes a section type conflict with 'texts_all_languages' I realized that either "indicesPt_br" and "texts_all_languages" are declared using TEXT_LOCATION_FLASH_PRAGMA and TEXT_LOCATION_FLASH_ATTRIBUTE macros.These macros are located at "[..]\touchgfx\framework\include\touchgfx\hal\Config.h" as showed bellow: /** A macro for placing Font Glyph in memory. */ #define FONT_GLYPH_LOCATION_FLASH_PRAGMA LOCATION_PRAGMA("FontFlashSection") /** A macro for placing Font Glyph attribute in memory. */ #define FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE LOCATION_ATTRIBUTE("FontFlashSection") /** A
I would like to display the received SPI data on a scroll list container from TouchGFX. But the thing is, data are coming in at high rate, around 10,000 times in a second and each of these data need to be display on reach row of the table.Is there a way to make an infinitely long table in Touchgfx? And also how do I make the table scrolls down automatically as data are coming?
Hello TouchGFX Community!This post is not a question, it's just a little tutorial on how to use double framebuffer strategy on DSI displays. We saw that this is something a lot of us want to do to improve performance, so here's how you can do it :)Note : I'll be using the STM32F469-disco board for this tutorial. Let's get started!1- On STM32CubeMX, select "Double Buffer" as "Framebuffer Strategy". Set 0xC0000000 and 0xC00C3000 as the two start addresses. 2- Configuration of the LTDC on STM32CubeMX : under "Layer Settings"> "Frame Buffer">"Layer0 - Color Frame Buffer Line Length", set "832" value. The reason why we put 832 and not 800 as the Color Frame Buffer Line Length is because the DMA can transfer up to 208 pixel by VSYNC so 832 pixel after 4 VSYNC.We can put 800 but the performance would be slower because we will need to make the calculation of sending 3*208 + 1763- In TouchGFXHAL.cpp, Add theses lines in TouchGFXHAL::setTFTFrameBuffer() function : void Touc
I upload code to my custom board and it works fine until I open custom container and it starts lagging (with others custom containers in that screen does not lagging) in other screens also the same problem. I've tried to comment code in this custom container but nothing helps.. Attach video :https://www.dropbox.com/scl/fi/3p2t9rqdc2mjpthl76ynp/Video-2023-08-07-07-41-03.mov?rlkey=7eeou4uvend1m902ei0k7ch1s&dl=0What can cause this problem?
Posted on October 02, 2017 at 23:58Hello,I'm trying to connect the Raspberry Pi 7 'Displays through the B-LCDAD-RPI1 adapter to the STM32F769I-DISKO BOARD.Do you have an example of a project? #stm32f769i-disco #b-lcdad-rpi1 #dsi #7 #raspberry"
Hi all,I want to change from firstScreen to secondScreen if there is some text displayed on the firstScreen. I found an old post (here) where the accepted answer says it is difficult right now and working on a better way ... that post is from 2019 though. Is there a newer/simpler way to change screen from code?Thanks
Hi everyonei worked fine with MB116-A03 display and now i have the same problem with A09 display. I made the changes available on github:- created the new component nt35510 with the three files (.h .c .html)- and made changes to 4 files: stm32f769i_discovery_lcd (.c and .h) stm32f769i_discovery (.c and .h).However the display still does not work. But are there other changes to be made? It says to enable the correct hardware target, but where can I do that?In the stm32f769i_discovery.h file I have already reported the lines:#if !defined(USE_STM32F769I_DISCO) && \!defined(USE_STM32F769I_DISCO_REVB03)#define USE_STM32F769I_DISCOThanks to anyone who can give me directions.
HelloThis problem has arised when creating a more complex program and I have narrow it down to a single test.project. I have created the usual project for the STM32F769 Disco using TouchGFX 4.20 Designer . I have set only one single TextArea, configured a wilcard to use the buffer with enough space and initial value of 0. The wildcard range is 0-9Then, I have exported the source code and I have modified it in STM32CubeIDE 1.10.1 and HAL1.16 to increase a counter in Screen1View::handleTickEvent() with the following codeUnicode::snprintf(textArea1Buffer,TEXTAREA1_SIZE,"%u",ctr++);textArea1.resizeToCurrentText();textArea1.invalidate();ctr is a uint32_t protected member in Scereen1View.hppThe problem is:- Executable generated by the simulator runs as expected.- Elf compiled and flashed by the TouchGFX Designer runs in the target as expected.- Elf compiled by STM32CubeIDE does not work.It crashes when initializing the TextArea1 in Screen1ViewBaseUnicode::snprintf(textArea1Buffer, TEXTAREA1_
Hi all,I'm making my project and adding screens and stuff and I noticed that if I add an interaction to a button as a virtual function, and add a function name, the function does not get automatically added to the code in the *.hpp and *.cpp files for that screen. I end up having to go back and forth between the designer and cubeIDE to copy/past the function names to the files. I had like 15 functions to add. Am I missing a setting somewhere to autogenerate the virtual function names in the files or it is suppose to be manually done?Thanks
So far, I've been able to create a TextArea with a wildcard in TouchGFX and then edit its buffer via program code - that works. I just edit the array and invalidate. Done.However, I fail miserably when I try to create Textarea using code only. I have created boxes, for example, and scrollable containers, put stuff inside each other and they work (and many of them in arrays that I loop through when drawing), but textareas are pretty wild and also weirdly (under)documented, and there are pretty much no examples in the internet, I googled my fingers to blood and left almost no links unclicked in google.My logic was to look at TextAreas created by TouchGFX generator and reproduce the procedure - worked with other things, but doesn't work for TextArea. Here is a WORKING automatically generated by TouchGFX code from ViewBase:textArea1.setXY(0, 51); textArea1.setColor(touchgfx::Color::getColorFrom24BitRGB(0, 0, 0)); textArea1.setLinespacing(0); Unicode::snprintf(textArea1Buffer, TEXTAREA1_SIZ
Hello ,when i swap slowly from one screen to anotheir, i get stuck beetween two screen on my board (STM32F7508-DK) I have attached a full the project.
Hello community,I'm currently working on a project that requires using the URDU language with TouchGFX. Unfortunately, there seems to be no native support for URDU in TouchGFX according to the documentation. I was wondering if anyone has come across a workaround or solution to enable URDU language support in TouchGFX?Any guidance or suggestions on how to approach this challenge would be greatly appreciated.Thank you!
The position of the text containing only a dot on a Button with Label is wrong. Left picture is a screenshot from TouchGFX Designer, where the dot is well aligned. To the right a framebuffer-screenshot of the actual application running on target hardware. The dot is vertically aligned to the middle of a typical character height.Sometimes already the Designer shows the wrong position of the dot. Not sure when this happens.Versions are up-to-date (CubeMX, CubeIDE and TouchGFX)
Hi all,Lately I purchased the FusionV8 board by Mikroe to play around with. Currently I have a STM32F407ZG mounted on it, but I can change it with a douzens of other STM's. Also included a 7 inch tft capacitive board to do some testing with.I was wondering if anyone of you had experience with the board in the TouchGFX Designer? Is there a way I can directly upload to the Fusion board? Happy to hear your thoughts!-Jeroen
Hello ST Team,I have a huge TouchGFX project (80+ Screens, several Containers, 400+ images), which I am currently working at using version 4.21.4 (generated with Cube V. 6.8.0). This version is working perfectly. I can generate code, add screens and so on. As this is not yet a released project, I thought it would be good to convert it to the latest version 4.22.0. However this fails to load the project at all. The designer simply closes after 2 minutes (when the project would normally appear) without any comment or other error message. I can not send the project to you as it is confidential and furthermore it is not a standalone project. There is a second CPU involved. It is a custom board with LCD 480x800.How can I help to find the reason for this crash ?Best regards GS
Hi,I'm having an issue building TouchGFX project in new VSCode extenstion. When building cmake is throwing an error:cannot find -ltouchgfx-float-abi-hard: No such file or directory.Project is builiding and compiling in STM32CubeIDE just fine.
How to change type from Unicodechar to char? I'm trying to pass char to model like this, but it only passes one character. What I am doing wrong?
I store "FrontendHeap" to my external SDRAM and in the text appears question mark and when I want to change screen it crashes at specific screen.I configured my SDRAM void MX_FMC_Init(void) { /* USER CODE BEGIN FMC_Init 0 */ /* USER CODE END FMC_Init 0 */ FMC_SDRAM_TimingTypeDef SdramTiming = {0}; /* USER CODE BEGIN FMC_Init 1 */ /* USER CODE END FMC_Init 1 */ /** Perform the SDRAM1 memory initialization sequence */ hsdram1.Instance = FMC_SDRAM_DEVICE; /* hsdram1.Init */ hsdram1.Init.SDBank = FMC_SDRAM_BANK1; hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8; hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12; hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16; hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4; hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_2; hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE; hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2; hsdram1.Init.ReadBurst = FMC_SDR
My app needs to display emails. How do I setup "Wildcard Characters", "Wildcard ranges"... to allow the TextArea to display Unicode Text dynamically (text generated at runtime)?Thanks.
Is there any way to update 4 textarea with a single invalidate call? Or is there any way to add multiple text area in a custom container and update all text area with a single call of invalidate?
I know, there are a lot of posts about this topic. But I am curious that there is any new improvement.I am working on the STM32F207 series MCU. I built the code by using the core library for Cortex-M0. But I don't know that it will work or not. Did anybody else try it?Additionally, I will use FSMC and partial buffer strategies. I think the documentation is not enough for FSMC and partial buffering. How can I implement it? Which function should I handle?Thanks for your helps.
I have a list of Menu items. I'm handling the navigation with buttons. When curser/pointer pointed on a particular menu Item, The existing text should look darker than other items. Example (Sorry about the poor outline :grinning_face_with_sweat:). Seeking Help on: How to make text looks darker on run time ?Thanks in advance,
I am using external flash for TouchGFX resources and also for saveing some parameters. I am doing the saveing of parameters in runtime with following code (emulated eeprom is in external flash): void eepromCtrl(){ uint8_t EEpromQueueFillLevel = uxQueueMessagesWaiting(Queue_To_EEpromHandle); if((EEpromQueueFillLevel <= 0) || !enableEEpromWriting){ return; } baseType = xQueueReceive(Queue_To_EEpromHandle, &eepromQueueMsg, portMAX_DELAY); semaphoreCount1 = osSemaphoreGetCount(binarySemaphorFlashHandle); if ((baseType == pdPASS) && (eepromQueueMsg.id > 0)) { // osSemaphoreAcquire(binarySemaphorFlashHandle, 0); osKernelLock(); // Suspend necessary interrupts HAL_DMA2D_Suspend(&hdma2d); NVIC_DisableIRQ(DMA2D_IRQn); NVIC_DisableIRQ(TIM5_IRQn); // Perform flash write stat = ExtFlash_Abort(&hqspi); if(stat == EXT_FLASH_OK){ ee_status = EE_WriteVariable32bits(eepromQueueMsg.id,eepromQueueMsg.value); } if(ee_sta
Hello,I am working on a custom board with STM32H750XBH6 MCU.In my project I am time to time getting LCD flickering issues. First it was only visible in release version. Then after switching off the compiler optimizations, it worked. Again I have got a similar issue when I have updated the application logic without doing any changes to UI. I have attached a video with flickering problem. There it was not handling any touch events. Any idea about possible root cause or a way to solve this issue?https://youtu.be/-bUHPWluGaQ
Hi,I wanted one data that I received from back end to be displayed in both in startup screen and screen2 which comes up after startup screen.So once I receive the data from back end in startup screen via Model.cpp I have to save it in Model.cpp and when screen2 is called I have to read the stored data from model->screen2 presenter->screen2 view.Now the question is should I store the data in static variable in Model.cpp?
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.