Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
hi,I created a simple project with TouchGfx 4.22.1 for STM32F746G-DISCO and added a label to check whether the LCD worked.However, the LCD did not display anything after downloading the code. According to the log of compiling the code as below, the file of 'stm32746g_discovery_lcd.c' in Drivers/BSP/STM32746G-Discovery/ was not compiled or included in the project. And the lcd driver is designed for RK043FN48H LCD while it should be KUNJIAN HT043C,May I know if there are any sample codes which can be run on the STM32F746G-DISCO version C01? Thanks.=================Run TargetGenerateDoneGenerate Assetsmake -f simulator/gcc/Makefile assets -j8Reading ./application.configReading ./target.configDonePost Generatetouchgfx update_project --project-file=simulator/msvs/Application.vcxprojDonePost Generate Targettouchgfx update_project.cproject file: ../STM32CubeIDE/.cprojectWriting STM32CubeIDE project file: ../STM32CubeIDE/.projectWriting STM32CubeIDE project file: ../STM32CubeIDE
Hi, newly released CubeMX 6.11.1 still doesn't fix an issue that ThreadX cannot be selected for TouchGFX for TrustZone-enabled projects. It has been reported and admitted quite a while ago. See here:https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/cubemx-does-not-allow-use-of-threadx-with-touchgfx-on-trustzone/td-p/645897Seems like the fix is not extremely difficult - just to enable option in drop-down list of OSs in TouchGFX tab. When this fix can be expected? Quite a few manual intervention actions for project files required without it after each project re-generation from CubeMX. Very inconvenient.
Hello everyone,Could someone answert my question and its: could we are use the video widget in TouchGFX to view live frames from USB Camera?The discussion is open...Best regards,Mahdi
Hi all,As title, I have a custom board using STM32H723ZGT6, RGB666 LCD (480 * 480) with LTDC interface, the framebuffer used external Octo SPI PSRAM APS12808L-3OBM-BA of APMemory. I can display image using TouchGFX, but the image always noisy with some green pixels ramdom, I try with others image, but it still appear (see image)Below is my configuration for system clock, OSPI, LTDCAPS12808LTDCRGB LCDSystem clockI have performance test random write then read for OSPI PSRAM with log:Size of FrameBuffer = 460800Writing Sequence of 460800 bytes OK with 0.1870sRead 460800 bytes in 0.0690s. Total error = 0, Error rate 0.00 %===== 1. Write Read random 1 block PSRAM OK =====Size of FrameBuffer = 460800Writing Sequence of 460800 bytes OK with 0.1880sRead 460800 bytes in 0.0690s. Total error = 0, Error rate 0.00 %===== 2. Write Read random 1 block PSRAM OK =================================================Writing Sequence of 16777216 bytes OK with 9.2790sRead 16777216 bytes in 2.3420s. Total
Well, hello, here I am again.Today I would like to ask you about OSWrappers::takeFrameBufferSemaphore() method. Unfortunetly in our device we get some random 'hangs' after minutes or even hours of working. Inside this method TGFX waits for a semaphore to be released:xSemaphoreTake(frame_buffer_sem, portMAX_DELAY);TGFX works in a single thread so I guess it waits for DMA2D interrupt to signalize the task it can safely make further magic with framebuffer. But in our case it happens to wait for it for ever. The stack presents as following (I changed portMAX_DELAY to 5000 after which I performed BKPT):I have no idea how to repair it or even debug.I have found some info about problems with this lock here:https://support.touchgfx.com/docs/miscellaneous/known-issues#textarea-and-chromart-dma2dI added endFrame method in HAL:void STM32F7HAL::endFrame() { if (dma.isDMARunning()) { OSWrappers::tryTakeFrameBufferSemaphore(); } HAL::endFrame(); }But it did not help- although it helps somehow w
Hello,I am using STM32H745XIH6 controller Board, and a display resolution of 480 x 480. In my application I need to move the box widget to a particular x and y positions. The thing is we need a smooth movement of the box at a particular position. In the interaction 1, Am selecting the "Screen transition begins" in the trigger, and the action to "move the widget i.e. Box 1" and the "y value(ex: 300)" for the position to move the box.And the box moved to the particular position that I have mentioned. but when I have added another interaction after some animation delay to move the same widget to another position by changing the value in interaction 2(y value changed to 100) then the box directly goes from '0' to '100' rather than changing from '0' to '300'(box will move downwards first) and '300' to '100'(box will move upwards next).Could you please help me in this regards?
I would like to show some texts on the display when running the "debug" build configuration, but not when code is compiled for the "release".How to?TouchGFX (4.23.1) generates the code and STM32CubeIDE (1.14.1) builds and flashes the project.
Hi,I'm working with STM32F746G DISCO board. I have 4 different image arrays- img1[65536], img2[65536], img3[65536], img4[65536]. I would like to display this on the screen simultaneously one below the other.In the below program,int i=0; while(i<4) { pLayerCfg.WindowY0 = 68*i; // incrementing Y position on screen to display next image pLayerCfg.FBStartAdress = (uint32_t) &img(i); //&img1, &img2, &img3, &img4 HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 1); }This displays one image at a time in the incremented Y position. entire screen is reloaded everytime. I tried with - HAL_LTDC_ConfigLayer_NoReload(&hltdc, &pLayerCfg, 1);But did not display image unless I call - HAL_LTDC_Reload() function where again only 1 image is displayed. I'm unable to combine all the image arrays to one since 65536 is the max limit for array size initialization. Please suggest how to display 4 images at a time on screen one below othe
Hello.I would use a static graph to display data. In the handletickevent function, I update the addDataPoint(x data, y data) function for the given page, but nothing appears on the graph, the scale is fine, but no line or change in the x direction can be seen on the display. I am currently using the tickcounter++ variable value for X data, which also increases in debug. For X data, I entered 0min, 200max data in the touchgfx program. I also tried the dynamic graph.Thanks if anyone can help.
Hello,I have custom board with MCU STM32H735IGTx connected via OctoSPI to QuadSPI external flash memory MX25L12833FM21-10GIn order to flash the external memory I am using external flash loader based on the template in https://github.com/STMicroelectronics/stm32-external-loader/tree/contrib When I am running from the embedded SW application the test template (include erase, write and memory mapping) the test pass OK.When I am running the external loader from the cube programmer the read from 0x90000000 failsWhen I am running the external loader from cube IDE I get 'Erasing external memory sectors [0 23] failureAttached external flash BSP driver mx25l128_quadspi.c , loader template Loader_Src.c and MX driver octospi.cHelp will be highly appreciated!Best regards
TouchGFX 4.24.0 is now out. Please follow this link to download it. 4.24.0 Release details: Release date: June 6th, 2024 New TouchGFX Designer Features: Added a QR Code widget. Added RGB Compression for images. New TouchGFX Core Features: Added RGB Image Compression for 16bpp, 24bpp and 32bpp framebufferformats. Bugfixes in TouchGFX Designer: Fixed a bug where small screens were not able to display the languagesettings properly. Fixed a bug where copying and pasting widgets from one screen to anotherwould invert the order of the widgets. Fixed a bug where a user was able to modify the canvas while being in adifferent tab, by copying and pasting widgets selected on the canvas. Fixed a bug where the user was unable to edit the name of a widget with the F2 key while being placed inside a container. Fixed TextureMapper not showing an image when copying and pasting aTextureMapper. Fixed the text in Log View being editable. Fixed erroneous default value behavior
Hi,Do you know what I am doing wrong ? Thanks
Hi Team,I have a requirement to create an elevator animation based on user input.I have a 3D image representing a single floor, and I am using it in a container to create a scroll list for multiple floors. However, because of the 3D image, there is a gap between the floors, which is causing issues.Please find the attached images showing the actual output and the desired output. How can I manage this gap effectively?Thank you.
i'm referring to the STM32H7S78-DK which specifically mounts the new STM32H7S7L8 mcu there is the possibility of driving a 1280x400 rgb 888 or RGB 565 tft display using a double frame buffer with reasonable performance we can carry out an example (FPS) calculation using the PSRAM installed on the board for the frame buffer or identifying any unsolvable limit how much processor time should I expect to lose in the GUI
I`m currently using riverdi display RVT101HVSNWC00-B STM32 EMBEDDED 10.1" DISPLAY and im havinh a problem anything to my screen is glitching i tried images also gauges and texts am able to run the demos no problem but my screen always glitches the joint picture shows the case,in center i added a gauge and an image,the application runs on my simulator with no glitches.
I am working with H747-DISCO (dual core) board and the issue is that I cannot choose the specific core which touchgfx runs on. It works well on M7 core but I need to use other software packs such as cube-ai on M7. So is it possible to manually switch to M4 core?
Hi,Currently I'm using touchgfx for designing screens for my Monochrome LCD (doesn't support Touch functionality). I'm using scroll list feature for displaying multiple items in one screen and use external button to scroll through them. Currently I should have scrolling of elements inside scroll list. Which feature can I use to get this?For Example(below image), in below image Text1 and its corresponding Val1, Text2-Val2 and when user selects Enum1, I want a new scroll list to display EVal1, EVal2, EVal3 and Eval4. For displaying in same window for its enums which feature shall I use?Thanks,Bhavya
I had different versions of TouchGFX and when I downloaded 4.21.4 version it does not show demos. What can I do?
Hello everyone Is there any example that I can use to read avi file from SD- CARD and pass it to TouchGFX Function?Now I can play video from RAM at address 0xD0780000 for instance, This is TouchGFX Function but I don't know how to use it?Any help, I would appreciate :folded_hands: class MyReader : public touchgfx::VideoDataReader{public:MyReader() : position(0) { }virtual uint32_t getDataLength() { return video_len; }virtual void seek(uint32_t pos) { position = pos; }virtual bool readData(void* dst, uint32_t bytes){memcpy(dst, &video_data[position], bytes);position += bytes;return true;}private:uint32_t position;} myReader; video.setVideoData(myReader); https://support.touchgfx.com/docs/development/touchgfx-hal-development/scenarios/scenarios-video-decoding#filereader-interface
Suppose we have 50 different screen in a program.For the following modes, I have to show information to the user in a Modal window in the same screen we are in.For example, USB connection - correct storage of information in the memory - temperature crossing a certain range and...If I use Modal Window, I have to add it in all these 50 pages.:\ Is it possible to define a common Modal window for all screen?so that it can be called and shown in all of these 50 screen.
Hello. I have made a custom project with STM32H735IGT. I use Touchgfx. I am using external flash and external RAM. The problem is when I place the framebuffer in external RAM. Some green pixels appear as in image 1. When I place the framebuffer in internal RAM, the image is painted well. I am using IS66WVH16M8DBLL-100B1LI RAM. I attached hardware configuration, the RAM is OCTOSPI2. video of the problem and .ioc: https://drive.google.com/drive/folders/1I96eqnh-5-xjDEKxfkxy-vVqeLvuVDY3?usp=sharingWhere is the problem?
I'm using Visual Studio 2022 to develop and debug TouchGFX softwareEvery time I launch the debug the console output shows 'Application.exe' (Win32): download of 'C:\Windows\SysWOW64\windows.storage.dll' completed ... Thread 2792 exited with code 0 (0x0). ... Is there a way to print also the cout like void MainWheel::handleDragEvent(const DragEvent& evt) { std::cout << "Variation X: " << evt.getDeltaX() << ", Variation Y: " << evt.getDeltaY() << std::endl;
I am trying to use touchfgx on stm32,but I have some problems .the background on the hmi will rotate sometimes,the background has a lot moving lines and shapes that rotate along.I know I can use texture mapper to realize it,but that need many texture mapper widgets.So I want to know if I can draw these shape and lines on a container,and then rotate the whole container. as far as I know,emwin can do this by using memdev.one more question:if I want to draw many lines and shapes on the container ,I have to declare the lines in designer? or Can I draw lines dynamicly like emwin?
Hi all,According to the document, I already store my image data to SD card and I can read the image data correctly by below function: FRESULT read_bin_file(char *name, uint32_t offset, uint32_t numBytesToRead, uint8_t* dest) { fresult = f_stat (name, &fno); if (fresult != FR_OK) { SD_ERR("\"%s\" does not exists\n", name); return fresult; } fresult = f_open(&fil, name, FA_READ); if(fresult != FR_OK) { SD_ERR("opening file \"%s\" err[%d]\n", name, fresult); return fresult; } uint32_t numBytesRead = 0; f_lseek(&fil, offset); f_read(&fil, dest, numBytesToRead, &numBytesRead); if (fresult != FR_OK || numBytesRead != numBytesToRead) { memset(dest, 0, numBytesToRead); SD_ERR("read bin file \"%s\" err[%d]\n", name, fresult); f_close(&fil); return fresult; } fresult = f_close(&fil); if (fresult != FR_OK) { SD_ERR("close file[%s] err[%d]\n", name, fresult); } return fresult; } I rewrite the TouchGFXHAL::block
Form TouchGFX Designer 4.18.1 I created a simple application.I imported the project into the STM32CubeIDE (1.9) and added support for FreeRTOS.I have selected TIM7 as the timebase source.After calling TouchGFXGeneratedHAL::initialize() in file TouchGFXHAL.cpp the TIM7 interrupt is no longer called!I also tried with other timers: same result.What could be the problem ?I noticed the problem because I had put a Hal_Delay after switching on the Display which never returned.My hardware is NUCLEO-G071RE and X-NUCLEO-GFX01M1
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.