Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I'm trying to port the STM32G071 NUCLEO DEMO downloaded via TouchGFX Designer 4.15.0 to the NUCLEO-F446RE.In order to use the external SPI Flash memory on the X-NUCLEO-GFX01M1 I need the external loder for the STM32F4 processor.The project downloaded via TouchGFX Designer 4.15.0 provides the external loader MX25L6433F_STM32G071B_NUCLEO.stldr in binary format.Is it possible to have the external loader project so that it can be adapted to other STM32s (STM32F446 in my case) ?Or I have to necessarily implement it from scratch, maybe I get started on the MOOC "How to create an external QSPI loader MOOC" ?
Everything looks ok and seems the same as all examples however trying to declare any new virtual functions gives me an error so I guess I'm doing something wrong. See code extracts below :-Code extract from Screen1ViewBase :-class Screen1ViewBase : public touchgfx::View<Screen1Presenter>{public: Screen1ViewBase(); virtual ~Screen1ViewBase() {} virtual void setupScreen(); /* * Virtual Action Handlers */ virtual void flexMainMenuClicked() { // Override and implement this function in Screen1 } virtual void ackNotification() { // Override and implement this function in Screen1 }Trying to add the definition for virtual void ackNotification(); in Screen1View.hpp causes a compile error Code ext
Hi, I have been building on a demo STM32F746g-DISCO touchgfx application for a little while now.My next thing I want to acheive is software update. I realised that the application do not fit in the internal flash.So I am thinking about my options. Either:Run the Application on the QSPI, this should be possible right?Split up the hex generation for one internal and one external binary, have a custom loader.The approach I have tried going with is 1). But I am having issues jumping to the application but with no success re-enabling interrupts etc, normaly Hal_Delay() stop working, or some other strange issues, from turning on CPU cache or initiating SystemClock Config twice.Another question is why are there 2 ld files in the touchgfx project, one ram and one flash.Which way would you guys have gone solving this?BRRobin
HelloAre the screen buttons visible in the main.c function? Do they need to be communicated in some way?Best regerdsAndrzej
HiHow do I install a new font?best regardsAndrzej
I have a project old existing project developed using touch gfx 4.10 wih keil. When I compile this using Keil it's all working fine. Now, I'd like to make changes to the GUI so I tried opening the .touchgfx file using the 4.10 version and generate code is failing as I see in the detailed log it uses target as IAR. I'd like to change this to Keil
Hi, i'm using custom board based on the STM32F769I_dsico board (using the same LCD drv, DSI comm). Now i wanted to use DSI video mode but i had some issues with starting the DSI video mode to work. after succeeding to start the video mode with touchgfx. i found tearing issues, so now i'm trying to use double buffering I generated code sample for DSI video mode with double buffer, but sitll i have the tearing issue. after debugginf i found only the second buffer is updated not the 1st buffer.So how to fix this issue?
Hi ST,I am doing a project: Use TouchGFX to generate image, link to SDRAM, MCU will get and show on LTDC (MIPI-DSI Interface). I don't know how does TouchGFX link to SDRAM.How to build project touchGFX (MIPI-DSI interface)?Thank you.
Hi,i try to create custom loader for my STM32F7 som from emcraft but they are using nor flash and the example provided by STM is for Quadspi memory. is there any example for the parallel Nor Flash?
I use the new graph widget with an Histogram and i set the baseline to 50.If i close touchgfx and open agin my projet the baseline is not define.
Hi,I try to use setWideTextAction() to wrap my long text into new lines as it goes over screen.However, setWideTextAction does not seem to do anything.What I have done:-disable Auto-size and set text area size within screen limits (to generate code below)-set Ellipsis character for this typography to *-use code:textPopup.setPosition(29, 0, 180, 160); textPopup.setColor(touchgfx::Color::getColorFrom24BitRGB(207, 207, 207)); textPopup.setLinespacing(0); textPopup.setTypedText(touchgfx::TypedText(T_SINGLEUSEID228)); textPopup.setWideTextAction(WIDE_TEXT_CHARWRAP); textPopup.invalidate(); textPopup.resizeToCurrentText(); textPopup.resizeHeightToCurrentText(); textPopup.invalidate();There is no ellipsis character, no newlines, the text just prints over the borders like it was not there.How to use this?Thanks!
HeI'm sending the program.I want to display min_current from main.c after pressing the START button in AreaMin instead of the min given by ButtonADD_MIN and ButtonSUB_MIN buttonsgreetings
HeHow to remember the variable in STM32F746G-DISCO to restore it after power off?best regardsAndrzej
When Graphics Application is checked, a folders tree starting from TouchGFX, with files like GFX2.touchgfx, etc, is generated. It’s OK.When the .ioc file becomes complicated (as the example I attach), it seems that TouchGFX is replaced by Src and all files are generated under Src, mixing them with main.c and the other files.Could you fix this, please?
..
Hello,Still developping on my STM32H753VT6 with touchGFX. Instead of loading images with touchGFX designer, I want to decode a JPEG image and then display it on my LCD screen.For the moment I've just checked the example for the STM32H750B-DK demo board. It is obviously working on the demo board but not on my MCU. Indeed I'm stucked at this point : /*##-4- Wait till end of JPEG decoding #*/ while(Jpeg_HWDecodingEnd == 0) { }This means that my decoding never finishes.However I think i've added all the code to make the JPEG decoder working. Here is what i've added :In main.c file :#include "decode_dma.h" #include "image_320_240_jpg.h" JPEG_HandleTypeDef hjpeg; JPEG_ConfTypeDef JPEG_Info; uint32_t image_320_240_jpg_decoded[] = {0}; extern const unsigned char image_320_240_jpg[]; extern uint32_t Jpeg_HWDecodingEnd; static void MX_JPEG_Init(void); hjpeg.Instance = JPEG; volatile HAL_StatusTypeDef res = HAL_JPEG_Init(&hjpeg); JPEG_Decode_DMA(&hjpeg, (uint32_
I use on screen scrolllist and in base.hpp havetouchgfx::DrawableListItems<MenuItem, 7> scrollList1ListItems;Where number 7 i cant change and when menu have 8 or more lines app crash.I make more diagnostic and locate, that TouchGFX can show and scroll by touch or in simu mouse any number of items, but when my user function try call method to customcontainer app crash.This is function for move cursor down:void Screen4View::curdown() { scrollList1ListItems[cursorpos].selit(0); if (cursorpos < scrollList1.getNumberOfItems()-1) { cursorpos++; } else cursorpos=0; //here crash scrollList1ListItems[cursorpos].selit(1); scrollList1.animateToItem(cursorpos,14); scrollList1.invalidate(); }crash on marked line when cursorpos > 6 Help.
I have both STM32F769I-DISCO and STM32F429I-DISC1.When I make a project from TouchGFX and import to CubeIDE, the ioc file is not included inSTM32F429I-DISC1 discovery board.I have checked the .project file of STM32F769I-DISCO it is containing these lines, while it is missing in STM32F429I-DISC1.<link> <name>STM32F769I_DISCO.ioc</name> <type>1</type> <locationURI>$%7BPARENT-1-PROJECT_LOC%7D/STM32F769I_DISCO.ioc</locationURI> </link>
Hi,I am new to the TouchGFX library and trying to make it work with the STM32F429-DISC1 board. The touch display is working fine and I don't see any issues with it. I am now trying to work around the Hardware Button to work with the TouchGFX library. On the board there is a PUSH button and I want to make it work with the screens. I know there is a workshop available for the Hardware button and TouchGFX interface. Is there any example available to work with the Push button or Hardware Buttons with the TouchGFX library or any resources?I would appreciate your help.ThanksAzeem
hi evryoneiam developing ui on stm32f429 microcontroller and i wanna use touchgfx for my software.i use 32MB external sdram and start address 0xc0000000 because my ui is complex.when i use single buffer strategy evrything is ok but for some widget like complex custom container tearing is appear on screen. for solve this problem i wanna use double buffer strategy. double buffer strategy eleminate the tearin but a few second after first touch some small dots appear on screen and as its passing number of dots growing. i dont know that what is the problem. my sdram configuration is problem or my touch driver or my sdram is broken. i attach a pic of what happend to my screen. please help me guys. i realy dont know what to do.
After a basic modiication in my touchgfx project now the TextKeysAndLanguages.hpp is generate with only null car.Before* DO NOT EDIT THIS FILE *//* This file is autogenerated by the text-database code generator */#ifndef TEXTKEYSANDLANGUAGES_HPP#define TEXTKEYSANDLANGUAGES_HPPtypedef enum{ GB, NUMBER_OF_LANGUAGES} LANGUAGES;typedef enum{ T_SINGLEUSEID1, T_SINGLEUSEID3, T_SINGLEUSEID5, T_SINGLEUSEID7, T_SINGLEUSEID9, T_SINGLEUSEID10, T_SINGLEUSEID12, T_SINGLEUSEID13, T_SINGLEUSEID14,.........And now only NULL car... :unamused_face: No issue on the generated codeGenerate Code Generate Wrote generated/gui_generated/include/gui_generated/scr_main_screen/Scr_MainViewBase.hpp Wrote generated/gui_generated/src/scr_main_screen/Scr_MainViewBase.cpp Done Generate Assets
Look at the projectand look at the displayYou can see artefacts.Why?
It is overwhelming to decide which product and module to use for my project. I have been searching the site for hours and I cannot get my head around it. .I want to design a thermostat that has a touch screen and wifi connectivity. I decided what other components like sensor and relays I'm going to use. but I cannot figure out what module or MCU should I be using for this. Any help is appreciated
The picture is a snapshot to show the files imported (by the IDE) when the project was created. I'd gladly attach any other file required.
I now try create multilevel menu system over two animated screens. My trouble is how and where store cursor and selection on any level. I create test variable int menulevel in Model , but how to access , change it in two screens? Exist any direct way or only for me chaotic usage of set get in presenters and model ?Second is actual cursor , can be used for this any global array or better is model class properties?Now i use this but on every entry to menu is reset to zero.class Screen3View : public Screen3ViewBase { public: Screen3View(); virtual ~Screen3View() {} virtual void setupScreen(); virtual void tearDownScreen(); virtual void scrollList1UpdateItem(MenuItem& item, int16_t itemIndex); virtual void curdown(); virtual void curup(); protected: int cursorpos; };Screen3View::Screen3View() : cursorpos(0) { }
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.