Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I am using STM32F429ZI Nucleo Bord by using LTDC . I have already print a image on that by using this system peripheral but when I am going to print string on that it not print on screen. Please help .my written code :-- BSP_LCD_Init(); BSP_LCD_LayerDefaultInit(LCD_BACKGROUND_LAYER,LCD_FRAME_BUFFER); BSP_LCD_SelectLayer(LCD_BACKGROUND_LAYER); BSP_LCD_Clear(LCD_COLOR_WHITE); //BSP_LCD_SetTextColor(LCD_COLOR_BLACK); BSP_LCD_DisplayStringAtLine(1,(uint8_t*)"hi"); BSP_LCD_DisplayStringAtLine(5,(uint8_t*)"HELLO");These API are in attached ".c and .h" file
Hi All,Our board has touch screen of resolution 480 x 272, surrounded by a touch sensitive area containing 11 touch sensitive buttons. The touch controller handles the screen and the touch buttons, we have coding written C workinghandling this. Also, we have SDRAM with 64Mb with 16-bit data interface. The on board micro is the STM32F429. So far all the code is written in C using Keil uVision. Handling out custom touch buttons, is that just a matter of creating a custom callback for touch interface handler? if not please suggest how it might be handled.The aim is speed up GUI development and use our existing non-GUI code.Kind RegardsMikeZ
I try to use TouchGfx make project load to STM32H743EVAL board I got some problems on qspiI us keil to download but I didn't download my main and other init program code start in 0x08000000It only load 0x900000000here is my .sct screen shot How to solve this If all file under 2MB I can direct download and STM32H743EVAL board can work But if too much photo How to set keil setting to use qspi?Thanks
Use cubemx to generate the project, then use the slider effect to switch screen and everything will run fine in the simulator.But I burned MDK to the hardware and didn't see the slider effect.Is there something wrong with the transplant?
Why are there such artificial limitations in CubeMX?I tried to take FMC/NAND interface into use for a TFT LCD, so I don't need addresses or command/address latch strobes, but if, from the pin map, I change CLA into something else, the whole FMC/NAND disappears. The HW works fine without the mentioned pins - I've used the NAND-interface that way. It would just be nice to get the set-up also "documented" in the .ioc-file. I did it before by configuring the FMC/NAND and changing the address and latch pins in SW for other functions.I couldn't use the NOR interface, because the display needed longer hold time than NOR could give.
Hello everyone,Need help with this one. I've downloaded and used TouchGFX in an attempt to learn how to use it but the results I get are garbled pictures (but text is OK). Even basic examples don't display correctly. I don't think it's a board problem as other demos using the display work fine.In this case ..\STM32469I-Discovery\Demonstrations\TouchGFX\SW4STM32\* is the source folder. I've enclosed a video of the first few seconds of run time. The debug session seems to report a critical error, though why is a mystery. The code is unmodified from the CubeF4 download.As a side note any projects I build using TouchGFX itself also yields garbled results.Any help gratefully received.Cheers,Rich
Hello ,I am working on a TouchGFX project with STM32f746-DISCO boardIn one of my screens I have a scrollable list ( ScrollWheel object ) with 10 items.The list is displayed correctly with the 10 items drawn on the screen.However when I access listItems[7] ~ listItems[9] through code, the program crashesI found this after trying to invalidate() for each item. I was able to reach until the 7th item only. And a crash occur whenever I try to reach anything beyond that.The problem I think comes form ScreenViewBase.hpp file:/* * Member Declarations */ touchgfx::DrawableListItems<ChannelRow, 7> listItems;TouchGFX keeps generating this line with size set to 7. no matter what is the value entered in the designer. I tried changing the number of items from the designer to values less and higher than 7. With no success.this file is write protected, and even when editing the value using external tools, TouchGFX keep regenerating this value.I hope I am missing something and this is n
I am using STM32F429 NUCLEO-144 (CM4 -STM32F429ZIT6 ) to interfacing of TFT , which have Himax HX8238 LCD controller ic with LTDC system peripheral . Is this possible it ?
HelloI am using the STM32F769-Disco Board with Touchgfx and CubeMX (and Atollic True Studio). I am not getting it working with the following manual: https://touchgfx.zendesk.com/hc/en-us/articles/360020208091-Configuring-STM32F769I-DISCOCan someone help me?I've got the STM32F746-Disco running with parallel-RGB interface. The STM32769-Disco has a DSI interface and I do not know what I've done wrong or if the manual has some issues.Dejan
Not really a question. I have attached a little test project for the STM32F476-Disco board using the newest ST tools. There are still problems and changes need to be made to the project. The Simulator and Build Code buttons do not work in the designer. The TouchGFX command line tool must be used for building the objects and the simulator. The simulator.exe file is located in the build folder within the TouchGFX folder. Before loading it into the target the code must be build with STM32CubeIDE.
Hi, I have data in 16bpp 565 format that i want to write directly into the stemwin framebuffer. According to eg https://forum.segger.com/index.php/Thread/2194-Direct-LCD-frame-buffer-access-when-using-STemWin/ this should be possible but I can't find how this is suppose to be done.Looking at the double buffering chapter in de emwin guide for inspiration (i only need 1 buffer), the buffers seem to be located at _VRamBaseAddr + BufferSize * BufferIndex but this _VramBaseAddr symbol does not seem to be available if i look for it in the stemwin directory so it is probably just some demo specific variable. Also I am not sure if this _VRam/Video Ram (?) is what i am looking for, in my case I am working with an external controller connected of 8 bit bus (so FlexColor driver) , the videoram sounds more like something you would use with the Lin driver.Any suggestions ?ThanksBram
Hi,I would like to store the resources (images) to SD card. I tired storing the images to SD card as .bin file instead of images. I could successfully read the .bin file and store those contents in flash location. By this way, I could successfully display the resources in LCD which is present in SD card.I understand that it is possible to store those contents in RAM/external Flash.Now, I would like to know is there a way that TouchGFX reads directly the SD card images for the graphics without the need for me to erase/write the flash or not using RAM/external Flash ?Can you give me an idea.
Detailed logConverting imagesCompiling gui/src/model/Model.cppIn file included from gui/src/model/Model.cpp:1:0:gui/include/gui/model/Model.hpp: In constructor 'Model::Model()':gui/include/gui/model/Model.hpp:65:20: error: 'Model::modelListener' will be initialized after [-Werror=reorder] ModelListener* modelListener; ^~~~~~~~~~~~~gui/include/gui/model/Model.hpp:60:10: error: 'int16_t Model::hour' [-Werror=reorder] int16_t hour; ^~~~gui/src/model/Model.cpp:8:1: error: when initialized here [-Werror=reorder] Model::Model() : modelListener(0), hour(0)//, minute(0) ^~~~~cc1plus.exe: all warnings being treated as errorssimulator/gcc/Makefile:220: recipe for target 'build/MINGW32_NT-6.2/gui/src/model/Model.o' failedmake[2]: *** [build/MINGW32_NT-6.2/gui/src/model/Model.o] Error 1simulator/gcc/Makefile:182: recipe for target 'generate_assets' failedmak
Title says it all really - just enabled hardware jpeg decode and I've lost my last mem2mem DMA channel. Various image manipulations (creating BMP file from camera image for example) requires moving a lot of data about for which up to now I've used mem2mem DMA.Is there a mode I can put the DMA2D engine into to use it as a straight forward byte copy. I'm struggling to get past the alpha channel and windowing at present!!
We are creating a display application using an STM32F7, using the LTDC and the DSI with the wrapper enabled. We program all DSI and LTDC registers, and perioidically write pixel data to the framebuffer and then refresh using (DSI->WCR |= DSI_WCR_LTDCEN. This works fine, but I noticed in my STM IDE in the LTDC system peripheral viewer, the registers are mostly zero and occasionally flicker to the programmed values. I wrote some code to spit out the register values over UART and see the same behavior in the read values... they are mostly zeroes, and occasionally (after refresh?) the programmed values.Why is this? Is this because it is being controlled by the DSI. Obviously this is something I should understand but can't find an explanation for it in the reference doc.Thanks for any insights...
I've been trying, on and off, for years to get a STemWin application up and running using any of ST's "CubeMX" products to create the project from scratch. I've never had any luck. I've always thought that I've been doing something wrong, but I'm slowly coming to the conclusion that ST just hasn't put in the effort to make this work. Can anyone prove me wrong? Please? Just... tell me what tool to use, tell me where to click and what buttons to push to get a "Hello, world" application running on the STM32F429DISCOVERY, starting from scratch with a "CubeMX" project.Because, honestly, I don't think it can be done.
I have installed the last version of TouchGFX Designer.I choose the board STM32-F429ZI and an example.I may simulate the example in the computer and it work correctly. But, even though I have connected the board to computer, the button "Run Target" is unavailable.I also have STMCubeMX installed, but I do not believe that it can affect TouchGFX Designer.
Is there an example of how to specify and use the callback functions for the Scroll Wheel? And how can I get the currently selected item, if not via the callback. I found getSelectedItem() in the documentation, but it seems to be protected.
Hi, I'm new here and I'm starting to develop an application on STM32H750 with TouchGFX. I've read about the STM32 LTDC's L8 (8-bit luminance or CLUT) mode. This would give a palette of 256 colors which is more than enough, and use very little memory. However it seems TouchGFX only supports framebuffers of 24bpp, is this correct? Or is it possible to let TouchGFX use an 8bpp framebuffer?Best Regards,Sjef
I am using the STM32F469I Disco board.I have created a project and then opened the generated Keil project. I simply try to build the generated project. The errors appear to be caused by not linking to the 'stm32f469xx.h' file. The correct compiler #define has been added. I even removed all the ELIF statements and hardcoded the correct header file with no joy. I was expecting this to build without any extra work. Is this the case? I have tried this on 2 projects with the same outcome. One is a project with 4 empty screens. The other is a project that I was using to test screen designs using visual studio. This is running in visual studio but will not build in Keil.I am using Keil uVision 5. Although I have used TouchGFX in the past it was on an older version. I also never used the generated Keil project but linked the generated files to my own project. Was hoping not to have to do this.
Hi,I have been leaning how to use TouchGFX with the STM32F429I Discovery Board. I have managed to get buttons to work with hardware and for it to call Virtual function to toggle GPIO pins. however when i have tried to add a virtual function with a slider i get a build error that i haven't declared the member function in the class:no 'void Screen1View::desiredValueChanged(int)' member function declared in class 'Screen1View' Screen1view.hpp #ifndef SCREEN1_VIEW_HPP #define SCREEN1_VIEW_HPP #include <gui_generated/screen1_screen/Screen1ViewBase.hpp> #include <gui/screen1_screen/Screen1Presenter.hpp> class Screen1View : public Screen1ViewBase { public: Screen1View(); virtual ~Screen1View() {} virtual void setupScreen(); virtual void tearDownScreen(); virtual void LED_On(); virtual void TLED_On(); virtual void desiredValueChanged(int value); protected: }; #endif // SCREEN1_VIEW_HPP Screen1View.cpp#include <gui/screen1_screen/Screen1View.hpp
Hi,I'm currently trying to display a JPEG image in STemWin, which is loaded into extRAM. Therefore, I can use the GUI_JPEG_Draw() method, which (as the documentation states), should ALWAYS return 0. While it does indeed display the image and return 0 for pictures loaded into the INTERNAL memory, it doesn't display anything and returns 1 for pictures in the external memory.Not only that, but calling the function will WRITE "0" OVER ALL PICTURE DATA.The data in the memory is undoubtedly correct, as GUI_JPEG_GetInfo() will return the correct size and a memory dump of the corresponding region will result in the exact same file as loaded into memory.So what is the problem with using the external RAM? Why does the function return 1, even if the documentation says it shouldn't and why does it fill my memory with "0"s?Thank you very much for your help,T. Albrecht
Dear, How do I connect a camera on the DCMI interface of https://www.st.com/en/evaluation-tools/32f469idiscovery.html ? Or should I buy another board ?Thanks,Bart
i have to move from dev board to final product still on STM32F429 but the 320x240 display has different controllers: NV3035C & FT5426the link will still be RGB (maybe RGB666) with Hsync e Vsync (is clk needed too?) as per the LCD pinout here: i failed to find hits on google. anyway i suppose it should work out. the general hints are clear:https://touchgfx.zendesk.com/hc/en-us/articles/204993942-Changing-to-a-different-displaythen only thing i wonder is about the "init cmd sequence" [*] to be sent on the "half duplex" SPI bus. trial and error is a way, but i'm open to hear about past experiences.of course also the touchscreen could need an effort.the FT5426 controller has the typical connection I2C/IRQ/RESET .. so i suppose one can always find the way following these hints: https://touchgfx.zendesk.com/hc/en-us/articles/204993932-Changing-to-a-different-touch-controller thanx in advance for any advice[*] i casually checked the ILI9341 init on the discovery board and i found a number
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.