Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hai..,I am using STM32F746IGT MCU ( Waveshare Development Board ) and 7Inch Display(1024x600)Software are using " STM32CubeIDE 1.6.0 " and " TouchGFX 4.16.0 ".I am Just create screen_1 (one color Box and one button) in TouchGFX Configure in STM32CubeMX :FMC --> SDRAM 1--> SDCKE1+SDNE1 Starting Address 0xD0000000 (SDRAM : ISSI IC42S16400J-7TL) QUADSPI --> Bank1 with Quad SPI Lines (MICRON : MT25QL128ABA1ESE-0SIT)DMA2D LTDC --> RGB888 (24bits)CRCFREERTOS --> CMSIS_V2 --> Stack Size(Words) 512 or 4096 also.TouchGFX 4.16.0 I am facing problems :If i use SYS --> Timebase Source : TIM6, While Debugging " SystemClock_Config() " then go to " TIM6_IRQHandler ". 2 Without using Timebase Source While Debugging " osKernelStart() " then go to " HardFault_Handler ".After upload ( Debugging) What's my display shows image mentioned bellow for your reference . And in STM32Cube IDE main.cpp file show hide, that screen short also attached below Please give me a idea for
Hey Team,Following the examples online , the wildcard range prevents me from inputting 0-120.I've also tried doing 0,120. that lets me input the value , generate the code but not actually show up on the screen
Hello,I am creating a low cost application with 320x240 LCD and ILI9341 controller.I store all language strings in the unmapped SPI external flash memory by loading the .bin files of each language.Unfortunately I can't see anything on the screen, I state that the fonts and bitmaps are loaded correctly in the external memory.If I try to load all the languages into the internal flash memory everything works fine.Here is a piece of my code:
Hi,I'm absolutely failing to deploy a successful touchGFX UI on the MB1315A . I can get a touchgfx example deployed on the onboard 390x390 LCD. However, in order to deploy to alternative screens, the documentation says to go through CubeMX.And so I went through cube MX. I setup the touchGFX generator, freeRTOS, and LTDC, and all other HW components, but it still fails. I was following this documentation to try and deploy the touchGFX application.https://support.touchgfx.com/docs/4.15/development/touchgfx-hal-development/touchgfx-generatorhttps://support.touchgfx.com/docs/4.15/development/touchgfx-hal-development/scenarios/scenarios-ltdc-parallel-rgbHowever, the touchGFX generator throws an error/warning surrounding the parameter settings of the LTCD.Documentation states nothing about what to se the synchronization settings to. Only the layer settings -> start/stop values.So I filled in the synchro settings: https://github.com/STMicroelectronics/STM32CubeL4/tree/master/Projects/
In Dynamic Graph widget, when we call API addDataPoint(), this will return the index of the added value. But how to get the x position?
Hello everyone,I'm currently developing a project using TouchGFX on a custom board with a STM32F469II and a 1024x600 screen in RGB interface.Right now, I'm trying to add a SD card to the system so that eventually I'll be able to print pictures from it. If I understood the documentation correctly, this means adding a cache space in the external SDRAM where I could place images so that TouchGFX can interact with it with the dynamic bitmap functionnality.The problem is that I cannot set up properly the cache space for TouchGFX. Here's what I'm doing in the TouchGFXHAL.cpp file :#include <TouchGFXHAL.hpp> /* USER CODE BEGIN TouchGFXHAL.cpp */ #include "stm32f4xx.h" #include <cstdlib> using namespace touchgfx; namespace { LOCATION_PRAGMA("BmpCacheSection") uint16_t cache[1000000] LOCATION_ATTRIBUTE("BmpCacheSection"); } void TouchGFXHAL::initialize() { // Calling parent implementation of initialize(). // // To overwrite the generate
hello.I want to have several images options for the same displayed image .png , to be kept in a file system in a dedicated flash , and to set the one that is relevant to be the .png to display at a certain time.can It be done ? thanks.
I'm using TouchGfx in Gray 4 mode. I have read the GFX documentation and I can't find the answer. I can't figure out how the data is stored in RAM. Consequently, I need to convert this Gray 4 to RGB565 to my FMC 16bit 8080 TFT-LCD. Any ideas how to do this? or additional references I should be reading? I'm using a 480 x 854 LCD. Here is a failed attempt..void TouchGFXHAL::copyFrameBufferBlockToLCD(const Rect rect) { __IO uint16_t* ptr; int16_t row; // For Gray4 only 4 bits per pixel for (row = 0; row < (rect.width) ; row++) { ptr = getClientFrameBuffer() + rect.y + (row+ rect.x) * 120; // 480 x 854 LCD LCD_IO_WriteMultipleDataGrey4((uint16_t*)ptr, 120); } } void LCD_IO_WriteMultipleDataGrey4(uint16_t* pData, uint32_t Size) { uint32_t i; for (i = 0; i < Size; i++) { // R 5bits G 6bits B 5 bits FMC_BANK1_WriteData( ((pData[i]&0xF000)<<0) | ((pData[i]&0xF000)>>5) | ((pData[i]&0xF000)>>12) ); &nb
I am trying using NAND flash to storage the setions, but don`t know how to dump these sections to a binary file, https://support.touchgfx.com/docs/development/scenarios/using-non-memory-mapped-flash shows command "arm-none-eabi-objcopy.exe --dump-section ExtFlashSection=images.bin TouchGFX/build/bin/target.elf" to generate it, so if I want to dump images alone with fonts, how to write the cmd and config on STM32CubeIDE?
Hello,I know it's not directly related to touchgfx but I thought someone out here could be able to help me and that it could interest others as well. I'm looking for a way to input chinese characters through a conventional qwerty keyboard. Searching the Internet, I found that one method to do so is called 'pinyin' and I'm therefore looking for a c/c++ library that does the job of converting those 'pinyin strings' to chinese characters.Note that I don't speak a word of chinese, hence why it would be difficult to code it myself, even if I have a pinyin to chinese char database to start with. But that would help me anyway if you know one. Also, if you know a library that does the conversion using another method (like cangjie for example), I'm willing to take it too !Have a nice day,G.
So if we use TouchGFX Designer, it provides a sample template project code for zoom in and zoom out feature for dynamic graph in Y axis. However it does not seem to have sample fox X-axis.I tried to experiment this by using setGraphRangeX() but it does not achieve what I want. In here, the X-axis range will be changed accordingly, but the graph still sweep the entire data points.E.g. originally I setup a dynamic graph with data point 100 and x axis 0 - 99. Then I call setGraphRangeX(0, 50) with intention now to display half of the graph range. The X axis does show only to 50 but the graph still sweeping 100 data points instead of 50 point and back again.This result the after graph sweep 50 points, then the graph animation will be idle a while as it is sweeping rest of 50 points and only then back again to x = 0 to restart (in wrap and overwrite setting)So as a start , is there any sample code to do zoom out zoom in in X axis?
I use FreeRtos. I know that the main loop is starting when the function TouchgfxProcess. But I don't know where this function is called. I think it's when the oskernelStart is called but I didn't find where. Could you give me some explanations ?Thanks
I am using TouchGFX for a project with hardware buttons, but no touch screen.Im trying to interface with the UI elements using the hardware buttons. For example I have a ScrollList full of toggle buttons, and I wish to toggle these buttons using the hardware buttons.Screen1ViewBase.cppClickEvent ce(ClickEvent::PRESSED, 14, 12); scrollList1.handleClickEvent(ce); ClickEvent ce1(ClickEvent::RELEASED, 14, 12); scrollList1.handleClickEvent(ce1); scrollList1.invalidate(); However this does not trigger the toggle button at 14,12 on the screen (origin top left).As well as this, is there generally a better way to interact with the UI using hardware buttons, or is the emulation of ClickEvents and DragEvents the best solution?Thanks,
..
Hello everybody!Have asked this as a comment in another thread (https://community.st.com/s/question/0D50X0000BvkqIZSQY/inexplicably-slow-rtc?t=1622663635692), but decided to make a separate question in this group.So far I was able to run STM32H743 (rev V) with FreeRTOS, LWIP and TouchGFX. Now I was trying to get TouchGFX show RTC clock and I stuck. RTC is working precisely (both with FreeRTOS [in a separate task] and without FreeRTOS [in a main while loop] ) until TouchGFX is started. Tried different task priorities - without success.MCU is configured for LSE (BDCR->LSEON=1, BDCR->LSERDY=1, BDCR->RTCSRC=0x01 (LSE), BDCR->RTCEN=1 [BDCR=0x8103])LSE itself is exactly 32.768kHz (oscilloscope measured)But in my case setting LSE Drive to RCC_LSEDRIVE_MEDIUMHIGH (as well as any other value) does not help.Reading RTC time from separate task at 1000ms intervals (osDelay(1000) ) log shows double values about every 5 seconds:03.06.21 00:07:2003.06.21 00:07:2103.06.21 00:07:2203.06.21
Hi,I am working on the ili9488 spi based display screen with touch using stm32l4r5zi nucleo kit.After doing number of development it was unable to get start, I get that is my lcd was damaged or already it was faulty.I request to all to share, few running example on which I can test it working at least. ILI9488 TFT Display has only SPI connection for it all the configuration.Looking forwarded for example to run and test ILI9488 TFT display.Thanks
Hi,I am using TouchGFX into a custom board with STM32L476 and simple display with RA6963 driver. Yeah, I know, is too much the TouchGFX for this project.Anyway, I crated the project, I added the low-level driver as suggested here: https://support.touchgfx.com/docs/development/touchgfx-hal-development/scenarios/scenarios-fmc but when I start the debug the application crash immediately into initialization:I can't understand why!Can you help me?ThanksMarco
Hai....,I am using STM32F746IG custom board and 7Inch Display STM32CubeIDE1.6.0 and TouchGFX4.16.0 After upload the code Display show four colors see bellow. In project ..../TouchGFX/simulator/main.cpp show hide and cross symbol image attached bellow for your reference. any one have idea about this problem.......? Please...Thanks & RegardsM.Govind
I would like to implement a screen saver for an app with multiple TouchGFX screens. AnimatedImage widget is perfect for screen saver function I reckon. My question how it can be used across the whole TouchGFX screens.The simplest solution might be that every screen shares the same AnimagedImage widget thru a custom container. In this case, I'm worrying that the size of TouchGFX resource might increase dramatically(But I think the TouchGFX designer will do its job smart, so it would not increase the resource size for the external flash no more than necessary.).There is an answer to the same question as mine already, where a screen ID was recommended by Martin.https://community.st.com/s/question/0D50X0000AaYMwM/how-to-implement-switchscreen-in-touchgfxI think it's a good idea. One problem is that I have to define screen ID for every screen manually. It seems that TouchGFX don't support the screen ID or something like that. So I have to add a new ID for a new screen to be added. Or I have
Hi,I'm trying to connect USB-User to my PC, but, in device manager ST-Link USB is found ( connected ) correctly but the USB-User is showing that it is an unknown device
I am using STM32F429VG controller. In custom board we have used serial SPI flash to store all images. We have followed all steps mention in below linkhttps://touchgfx.zendesk.com/hc/en-us/articles/205886201-Placing-Assets-in-Flash-Memoryhttps://touchgfx.zendesk.com/hc/en-us/articles/203564102But not able to understand How to cache all image data from flash?I have added Bitmap::cacheAll(); in touchgfx_init function but Blockcopy function is not getting called.Thanks
Hi,I want to ask if the sequence of color changed when touchgfx generate the .png image source code.The r255g000b000_480_640.png image is red in RGB888(0xff0000),when touchgfx generate the image_r255g000b000_480_640 source code in RGB888 is 0x0000ff.If i miss something in image settings?Thanks for your attention. r255g000b000_480_640.png iamge in touchgfx. image_r255g000b000_480_640 source code in mdk.
hello. I have a demand for application that will get input from keyboard and a master cpu and will change the displayed icons accordingly. icons like battery power or progress bar will be changed according to master cpu input and icons status like bolding the icon or unbolding it will be changed according to the keyboard input. I'm looking for a proper example for this. do you know about such ? thanks.
Hello,I'm using an STM32H725IGK6 and I'm having issues with using the FMC driving 16 bits of data to an 8080 type interface LCD. Setup is shown in photos below. I'm using the FMC with 'FMC bank mapping' in MX set to 'NOR/PSRAM bank and SDRAM bank1/bank2 are swapped' because when using address 0x60000000(not swapped) to write out data, I get 4 writes for every write.(very strange). So I've been using FMC address 0xC0000000 instead because for every write, I get 1 write. The issue: When a write a command is sent to the FMC controller, the FMC controller at first writes the correct value for a specified data bit, but before the Write bit (rises) to latch the data bit, the FMC controller (I'm assuming) goes into tri-state mode for the data pin(DB1 shown in yellow on oscilloscope) and the signal goes to a level that the LCD holds it at. See photos below. Note: I have made sure that read pin, chip select pin, command/address pin, reset pin are working as they should. Deb
Hi,We are currently developing a UI on an STM32H7. We are using a QSPI Flash and have successfully split the MCU code in the internal flash from the Assets that are now stored on memory-mapped External Flash. One thing we are looking to do is updating strings and maybe images, without having to flash the full firmware of the device.We looked into the generated files from TouchGFX, we understand that strings are used as an array (in LanguageGb.cpp) which points to the first character of that string in the texts_all_languages[] (in Texts.cpp). Both of these are stored in the External Flash. So theoretically we thought it would be doable to simply update the flash with the modified assets and it would have worked. But this does not seem the case.In short, we are looking to know if it is possible to do the following flow:1 - Upload Firmware to the device and UI using Flash Loader2 - Modify a string in TouchGFX, as an example this could simply be a typo fix3 - Upload only the new UI using F
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.