Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I try add to pnucleo WB55 project touchgfx package and result is../Drivers/CMSIS/Device/ST/STM32WBxx/Include/stm32wb55xx.h:1084:29: error: expected identifier before '(' token 1084 | #define LCD ((LCD_TypeDef *) LCD_BASE) | ^ ../TouchGFX/target/generated/TouchGFXGeneratedHAL.hpp:44:66: note: in expansion of macro 'LCD' 44 | TouchGFXGeneratedHAL(touchgfx::DMA_Interface& dma, touchgfx::LCD& display, touchgfx::TouchController& tc, uint16_t width, uint16_t height) : | ^~~ ../Drivers/CMSIS/Device/ST/STM32WBxx/Include/stm32wb55xx.h:961:31: error: expected ')' before '(' token 961 | #define LCD_BASE (APB1PERIPH_BASE + 0x00002400UL) | ^ ../Drivers/CMSIS/Device/ST/STM32WBxx/Include/stm32wb55xx.h:1084:46: note: in expansion of macro 'LCD_BASE' 1084 | #define LCD ((LCD_TypeDef *) LCD_BASE) | ^~~~~~~~ ../TouchGFX/target/generated/TouchGFXGeneratedHAL.hpp:44:66: note: in expansion of macro 'LCD' 44 | TouchGFXGeneratedHAL(touchgfx::DMA_Interface& dma, touchgfx::LCD& disp
I am makeing a gauge background out of many circle widgets. I dont want to use static immage background because the position of segments can change depending on the maximum rpm. I have create this in TouchGFX designer and for each circle widget Designer created also a painter. Therefor there are many painter that have the same color configuration. Is it possible to eliminate some widgets and/or painters to reduce the memory consumption. part of generated code CustomGaugeBackgroundBase.cpp segmentBig1.setPosition(0, 0, 494, 426); segmentBig1.setCenter(247, 246); segmentBig1.setRadius(235); segmentBig1.setLineWidth(22); segmentBig1.setArc(-136, -133); segmentBig1.setCapPrecision(180); segmentBig1Painter.setColor(touchgfx::Color::getColorFrom24BitRGB(255, 255, 255)); segmentBig1.setPainter(segmentBig1Painter); segmentBig8.setPosition(0, 0, 494, 426); segmentBig8.setCenter(247, 246); segmentBig8.setRadius(235); segmentBig8.setLineWidth(22); segmentBig8.setArc(134, 1
Hi everyone,I want to learn something about "Begin Frame" - "End Frame" process. If touchgfx "Begin Frame" has started, will it come to "End Frame" status no matter what happen. For example code status is "Begin Frame" but something is changed (screen change or frame change so no need to refresh this frame) at this point does touchgfx comes to "End Frame" status and do all the thing which need for ending frame ? or Does it stop this process and go back to start status for this new frame so "End Frame" never happen for old frame ?thanks Erdem
Hi I'm trying to get a LCD Display run with a Nucleo U575 Board via FMC connection.I followed this guide on Github for the setup. Somehow I don't get my CubeIDE working properly - I can only flash a code (even a simple blinky) to the board once. When I try to flash it a second time, the LD4 stays red and nothing else happens...Back to topic:So I followed the instructions linked above and setup everything in the CubeIDE. When I copy the needed files to a fresh/empty mbed program, it's building without any complains. Flashing the program to my Nucleo also works flawlessly (I'm using Mbed Studio). But As soon as the Nucleo executes the code, it gets stuck somewhere in the SystemClock_config() in line 205 when it checks for if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)Can anyone help me please?All code that I added to an empty mbed program can be seen in my github repo
..
Hello,I know it is possible to do a screen change with a button.But i would like to do it with swiping gesture is this possible ?Thanks
Hi, I want to integrate an 24-bit parallel LCD(change from 640×480 to 800×480) with STM32H743I-EVAL board. But I am a beginner for this field. So I followed this video > https://www.youtube.com/watch?v=yiHjOH7zJP0.What I have done is below:Created the folder using the sample template (STM32H743I EVAL) by TouchGFX Designer(V4.19.0)Open the STM32CubeMX file (V6.5.0)Changed PLL3 of Clock Configuartion from 32 to 24 to set 33.3MHzChanged LTDC values related to custom LCDThe rest of the work was done exactly as shown in the videoHowever, the results are not good.I'd really appreciate it if you could let me know what I'm doing wrong.Please refer to the images below. Result is:
Hi TouchGFX Engineers,I have been debugging an issue while developing secure updates for a touchgfx interface and I am interested in your thoughts on the problem:Firewall is configured to protect flash at the start of each bank as per SBSFU requirements, firewall on RAM is disabled (we use a STM32L4R9 which has an errata issue with SRAM1 accesses).Disabling the RAM part of the firewall allows my code to run and most of the screens and transitions work.Now I get a firewall reset whenever I call an animation function like startMoveAnimation() or animateToItem(), and sometimes on certain cover screen transitions (not consistent like the animation calls though).Do you think TouchGFX could be actually trying to access things in the protected sections? None of my application code overlaps.System specs:STM32L4R9VITx, assets in external flashDual frame buffer with GFXMMU, chromart DMA2D.Touchgfx version 4.18.1No animation buffer, all my transitions and animations work without oneBonus because
I will have 8 buttons to debounce. I also would like to detect 'press and hold' as well as double taps. Are there existing examples on how to do this correctly using interupt? Thanks!
Hello everybody,i create a project using TouchGFX 4.18 to read temperature.When a button is pressed i create a routine that read temperature from a sensor and show this in a text area inside a container.In TouchGFX i create a wildcard in texarea with buffer size 10 and default value 25.0Here below the code...about the View.cppvoid MainView::toggle_singleReadButtonPressed(){ float temp=0.0; mysensor_Read_Data_Sensor(&temp); //routine that read temperature textArea_WC_TEMP.setWildcard(textArea_WC_TEMPBuffer);// add(textArea_WC_TEMP); //commented not function correctly if (temp >0.0) { Unicode::snprintfFloat(textArea_WC_TEMPBuffer, 10, "%+4.2f", temp); } else { Unicode::snprintfFloat(textArea_WC_TEMPBuffer, 10, "%-4.2f", temp); } textArea_WC_TEMP.invalidate();}the textArea_WC_TEMP object is create in tha MainViewBase class created by TouchGFX and i see it inside the file .hpp.I follow the e
I am currently using a swipe container that goes between 3 pages by either swiping or using a next/back button on the bottom corners of the screen to change pages. The page indicators are overlapping with the next/back buttons when I do swiping so I was going to not use the built in page indicators and implement my own. The issue is on my next/back button presses, I change the page index and keep track of it so it is easy to update manually the page indicators but I have no way of detecting a swipe page change to update the page indicators. Is there a way to detect a page change on a swipe container?
Hello folks,how and where can I change the path to the STM32CubeProgrammer in TouchGFX Designer?After hitting the Run Target Button (F6) the TouchGFX Designer fails downloading the flash file due to not find STM32_Programmer_CLI.exe.This is because the default installation path is "C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe"My installation path is "C:\ST\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe". The TouchGFX Designer Settings do not provide path settings. Where can I edit this?Must be some sort of config file.My workaround is just manually flashing the file using CubeProgrammer and browsing the target file under "C:\TouchGFXProjects\MyApplication_1\TouchGFX\build\bin"There is a intflash.hex and a target.elf. Both do the same job as I figured out.TouchGFX Desinger V 4.17.0Target STM32F429 Discovery
I download code on MCU internal rom swipe GUI show is good(video : Ok.zip ).But I download code on external QSPI flash swipe GUI show is delay (video : Bad.zip).QSPI flash work clock on 100MHz.Why code on external QSPI flash can not work good like MCU internal rom ? Thank you & Best regards.
Hi, Im working on STM32L4 chip. I wanted to work on LTDC with 32MHz clock. I'm using internal 16MHz clock and generating 32MHz using PLL. When I give output of this clock pin to PA8 MCO pin, Im able to see 32MHz triangle wave with ~1.2V offset. When I give Internal clock 16MHz to MCO pin I see 0.8V offset and when 4MHz is given to MCO there is no offset. May I know why is this offset as the frequency increases. Is there any other setting to be done?
Hello all, I used a lot of images in my project and I put them (images.bin file) into SD-Card for used.Now I have a question: How to generate a big images.bin file? "In this example we will put the image data in the ExtFlashSection at address 0x24000000. You can select any address that is otherwise unused (not part of the code or data address space)."The 4GB (0x00000000~0xFFFFFFFF) zone is include code and data space, but I need to generate a big images.bin such as 4GB size.
I currently use the STM32 ButtonController class to poll external GPIO Buttons. Is this the best way to implement Hardware Buttons or would GPIO Interrupts with a signal being sent to the Presenter be a more efficient solution?
Hello,I am using the STM32F469 Disco with a custom display connected.Everything wiorks fine.Now i want to use the USB Port, which needs 48Mhz.For that i had to change the SYSCLK to 168 which was 180 Mhz originally.Everything works still fine, but when i do a fade-in of a picture, it flickers.Then i was looking to the Datasheet of the SDRAM N25Q128A and on some other websites i found that this may be a problem of the dummy cycles which needs to be changed.APB1 was 90Mhz with 180 Sysclk and now i have 84Mhz.This are the parameters in the header file of the N25Q128A:#define N25Q128A_DUMMY_CYCLES_READ 8 #define N25Q128A_DUMMY_CYCLES_READ_QUAD 10I played around, increase by 1, decrease by 1 and so on, no better result. Still flicker during a fade-in of a picture (Alpha from 0 to 255).In the "stm32469i_discovery_qspi.c" there is the "s_command.DummyCycles" in every function like read, write, erase.... which is mostly set to 0, only in "Read" and "EnableMemoryMappedMode" is is linked to the "
I have made a project for STM32f469I-DISCO ie. 4" 800x480 resolution. How do I resize/convert the entire project which consists of 12+pages and 100+ images and texts to a 5" 1280x720 screen without redesigning it?
Since TouchGFX 4.19.1, the slide transition does not work properly in portrait mode: The old screen that should slide away, gets erased when the transition starts. So the screen consists of random pixels. The new screen that's sliding in, is allright.I encountered the problem yesterday when I updated from 4.18 to 4.19. My project worked as it should, except for the slide transitions. To be sure that it has nothing to do with upgrading a 4.18-project to 4.19 I made a new project with two screens and slide transitions. The problem is the same, see picture 1. On the picture, the greyish part is the new screen sliding in and the colourful part is the old screen sliding out, but it's all random pixels. (The old screen should be black.) The display orientation is set to portrait mode.Then I tried the same project in landscape mode and there were no problems, see picture 2. Again, the greyish part is the new screen sliding in and the black part (with red box) is the old screen sliding out. It
Hi,I have one application developed one TouchGFX to run on STM32H7A3 device with a screen of 320*240. I tested all my hardware devices in my board and all of them work well.When I try to execute MX_TouchGFX_Init() function on main after configure:-MPU_Config-NOR flash (images stored on external flash)-SRAM (for display buffers)-LTCD and layer configurations-CRC -DMA2DI have one hardfault on Bitmap::registerBitmapDatabase(BitmapDatabase::getInstance(), BitmapDatabase::getInstanceSize());I made another test, that execute that function MX_TouchGFX_Init() inside one threat, and I get go more forward until get another hardfault when the code try to executetouchgfx::HAL::getInstance()->setDisplayOrientation(touchgfx::ORIENTATION_PORTRAIT);What can be the source of my hardFaults or I can solve this problems?My MPU_Config() is:static void MPU_Config(void){ MPU_Region_InitTypeDef MPU_InitStruct; // /* Disable the MPU */ HAL_MPU_Disable(); /* Configure the MPU attributes as
I read that already 2 years ago, someone had encountered this problem and the recommended solutions werw to make a merge between the project files ".touchgfx" and between the files "texts.xlsx" but you have to very careful not to make mistakes. To work togheter on a project we use Tortoise SVN to manage the project version control and actually we're using TouchGFX - 4.17.0. Do you have some tips or methods to solve this problem? Regards,Alessandro
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.