Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
It looks like the X-CUBEDISPLAY 2.0.1 software package is not supported the QSPI mode configured, it is only supported the SPI or the OSPI mode . The NUCLEO-H755ZI-Q is supported the SPI or QSPI mode only. Anyone know how to configure the X-CUBE-DISPLAY 2.0.1 with the QSPI mode ? Please Help , thanks.
I'm trying to port TouchGFX to VisualStudio Code + PlatformIO using ZephyrRTOS for the STM32F746-Disco board. To do that, I've just created an example project on TouchGFX Designer 4.17, generated the code, and added the required files manually as said in the "Using IDEs with TouchGFX" guide in the doc. I get these 4 erros which are all undefined reference errors : c:/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld.exe: .pio\build\disco_f746ng\src\TouchGFX\target\TouchGFXHAL.o:(.rodata._ZTV11TouchGFXHAL+0x6c): undefined reference to `touchgfx::HAL::copyFBRegionToMemory(touchgfx::Rect, unsigned short*, unsigned int)'c:/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld.exe: .pio\build\disco_f746ng\src\TouchGFX\target\TouchGFXHAL.o:(.rodata._ZTV11TouchGFXHAL+0xb8): undefined reference to `touchgfx::HAL::touch(int, int)'c:/.platformio/packages/toolchain-gccarmnon
The action should be triggered from a hardware driver and work from any screen.What I already know:How to generate "goto" functions from TouchGFX designer and call them from a view.Now - the hard way to do that is to generate the "goto" functions for each view and bind them from presenters to the ModelListener event. A lot of clicking and writing, the more of it the more screens I have in my application, and I have plenty of them.My goal is to make it simpler, but I don't know is there a simpler way. The idea is whenever a hardware driver error occurs - I want my application to immediately show a kind of BSOD to ensure when the screens show data - the data is accurate (because otherwise BSOD should appear).
helloInquire about error occurrence when using image in skin folder in "imageProgress" functionIf you select the project folder in the "imageProgress" function, it works normally, but if you select the image in the skin folder, an error occurs.PC simulation works normally, but an error occurs only in the target board download.The error message is as below : compilation terminated. gcc/Makefile:339: recipe for target 'TouchGFX/build/STM32H735G-DK/TouchGFX/generated/images/src/__designer/image_Blue_ProgressIndicators_fill_tiling_progress_indicator_fill_striped_normal_horizontal.o' failed make[2]: *** [TouchGFX/build/STM32H735G-DK/TouchGFX/generated/images/src/__designer/image_Blue_ProgressIndicators_fill_tiling_progress_indicator_fill_striped_normal_horizontal.o] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc/Makefile:289: recipe for target 'generate_assets' failed
Hi,I have project running on an STM32H7B3I-DK. I need to use the display to enter WiFi data SSID, password etc.I don't really want to spend a week writing my own so I thought I'd use the example in Touchgfx Has anyone done this?What steps do I need and how do I instantiate it and get the reurn string?Best regardsRob
Hi,Doing some research for development of a smartwatch like product and was trying to figure out if TouchGFX was compatible with ChibiOS.It seems like it should be possible, with the docs saying that any CMIS compliant OS is supported, however I wanted to double check to make sure.It also seems like the process would have to be manual for configuration, is there any guides on what exactly needs to be configured for TouchGFX to work?From Docs: Generally, the following manual steps are required:Configure the RTOSDefine a task to run TouchGFX (MX_TouchGFX_Process)Start the schedulerI have some embedded knowledge, so i understand most of the concepts but pretty new to RTOS development.Any help would be greatly appreciated.Thanks!
Hi Community,I have stored framebuffer in Internal RAM and assets in QSPI Nor Flash. I am not getting the desired display output.
Hi,I am using the ST32F412G discovery board, which has a 240x240 LCD attached to the controller using the FSMC interface. At the moment I am using the driver from the board support package and drawing works fine.I will be drawing moving shapes to the LCD and therefore I need to update the LCD continuously.At the moment all the write commands to the LCD are not synchronized to anything (roughly every 20ms all the drawing instructions are sent to the LCD, based on a scheduler in the main loop).Because sending the commands and the LCD scan are not synchronized, I see half-updated frames on the screen. I read the manual for the LCD driver (ST7789H2) and found that there is a Tearing-Effect Pin which can provides synchonization pulses to the MCU.I could think of two solutions to this problem:Solution 1: Keep a frame buffer in the internal ram (only 256k on ST32F412G) and then wait for the Tearing-PIN to show that the display is not beein updated and then copy pixel for pixel from the frame
Hi, I want to report a problem in TouchGFX Designer, when a project has some widgets and containers in the custom containers tab and it needs to scroll down in the left bar, when I scroll down to the end of the list by mouse scroll wheel, the designer doesn't response to anything anymore and has to be terminated by the task manager.
Hi,I have managed to use LVGL and Touch GFX and can display on ili9341 without any problems. But when it comes to the touch - XPT9041 I can not d anything. It always shows the same coordinates or zero. I have tried two different displays and three different drivers. I use SPI. Unfortunately I haven't found a single example with this MCU. I've checked the hardware connection and used logic analyser. When I debug the interrupt for when the display is pressed works. Is there a bug or something? Thank you,Daniel
Hi All. 'C:/TouchGFXProjects/MyApplication_1/Middlewares/Third_Party/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c', needed by 'C:/TouchGFXProjects/MyApplication_1/EWARM/STM32F429I-EVAL/Obj/Middlewares/FreeRTOS/port.o', missing and no known rule to make it Subj in question.
What I've tried:I made a C module that talks to a sensor and reads data from it. It's done in interrupts, my callback is called when the data is received.I can debug received data as they come by sending them over UART and read it on PuTTY.The problem is, the Visual Studio solution for the GUI part doesn't see all the hardware part.I discovered, than I can extern C functions from main or all included drivers and call them from the TouchGFX model.What I couldn't do - is to extern data. I have a variable in C, extern keyword used - any reference to it from C++ file produces compile error like "unknown symbol". C++ compiler doesn't complain about functions, it calls them.So I made something like this:static float value;extern "C" float h_get_value(){ return value;}It works.Long story short - I can pass the data in this ugly way to my model, though it's more like polling, my model just calls the function on every GUI frame.Now I wonder:Would it be possible to call Model or ModelListener in
I have a question about how to share the selections made in hpp in the gui folder in main.c in the Core folder.thank.
The operation of the touch button was confirmed through the example of the existing TouchGFX.I reviewed the Button example in TouchGFX Designer.As in the captured image above, I figured out the structure of the function that is called when the touch button is pressed using a break in MainViewBasee.cppIf you break the break in "void MainViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)"and look at each step, you can see that it is normally called with a normally defined function.However, the problem is that other functions are called in the project you created yourself.It should be "SC5_1_decreaseValue" or "SC5_1_increaseValue", but "void Screen5_1View::tearDownScreen()" is called.If you apply the brake, press "botton_up" and confirm with a single step, After entering the condition in button_up in the if statement, it is executed as the button_down part in the next step.andin the next step"void Screen5_1View::tearDownScreen()"will run asThere doesn
I'm using TouchGFX 4.19.1. My speedometer gauge worked fine originally, for a 390x390 display. I need it to work on a 480x480 display so scaled up the background image and needle image and resized the gauge widget. Now I struggle to centre the needle, and the actual image (in simulator and on target) differs from what TouchGFX displays. Changes to the needle rotation centre are not reflected in the simulator/target. This must be related to the relationship between image and widget sizes. Attached is a snip of the simulator (LHS) versus the TouchGFX image (RHS). Has anyone else experienced this?Gauge widget size is 480 x 260. Needle and background images supplied.
The TFT dsiplay was cracked, can I but the display only from ST ?
Project MX created without RTOS generate this main partMX_TouchGFX_Init(); MX_RTC_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Init code for STM32_WPAN */ MX_APPE_Init(); /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ MX_APPE_Process(); MX_TouchGFX_Process(); /* USER CODE BEGIN 3 */ if((HAL_GPIO_ReadPin(TOUCH_IRQ_GPIO_Port,TOUCH_IRQ_Pin) == GPIO_PIN_RESET || i2cRXbuff[0]!=0) && TouchDELAY==0) if (HAL_I2C_Master_Transmit(&hi2c1, 0x5c, (uint8_t *)"\340", 1, 1) == HAL_OK) { TouchDELAY=14; HAL_I2C_Master_Receive_IT(&hi2c1, 0x5c, i2cRXbuff, 5); } } /* USER CODE END 3 */If i comment RTC and APPE = TouchgfX works.If TouchGFX commented BLE works.Is BLE RTOS compliant? Or how add (move) TouchGFX_Process into sequencer?
..
Load failedFailed to execute MI command:load "C:\\st_products\\QVGA_TFT_LCD\\en.X-CUBE-DISPLAY_1_0_0\\Projects\\NUCLEO-G071RB\\Applications\\GFX01M1_HelloWorld - Copie\\STM32CubeIDE\\Debug\\X-NUCLEO-GFX01M1.elf"
Hello,I'm using an STM32H743i-Eval2, we plugged in another LCD of 1024x600 RGB888 60HzWe set the LTDC clock at 51.2Mhz as written in the LCD datasheet. (HSE 25Mhz / 25 * 512 / 10)We get no clock at all on Pin32 of CN20 (CLK pin on LCD connector)The clock is correct only when LTDC clock is set to 25Mhz or lower.Our system clock is set to 400Mhz, Peripheral Clock to 100MhzThe onboard 32bits SDRAM CAS is set to 2.Any clue ?
Hello,I am working on a touchgfx Project STM32F7508-DK.My GUI is already designed and I am do programming th intelligense to each GUI window.I have implement few communication interfaces like ModBus, I2C - Temperatur probe ( same I2C used by Touch-Controller ) as well.At the time, there are still a confuse behavior, because my real Display will go into undefined state after a short time after each start-up. I2C and USART interfaces doesn't work as well.If I am in Debugging Mode, a error window appears in STM32CubeIde:I take a look into "Build-Analyzer" ( in STM32CubeIde ) and see in the FLASH section .text following entry:Memmory Regions is attached to get an overview:I don't know what I could do anymore. If there is a problem of linker script?Have anyone an Idea or can help me to figured out the problem?
I have a project where I want to place the TGFX resources (images, translations, fonts) in a memory mapped QSPI flash. In this instance I have placed them in this flash via the linker (.o files) rather than using binary fonts etc. The crash occurs generally when switching screens. I can usually switch screens successfully a number of times. Sometimes it fails after 30 screen switches, sometimes 5. I've also seen it fail when updating smaller elements. The crash also prevents the debugger (IAR / I-Jet) from stopping, so I've had no luck there. Debug log: "CPU did not stop"I find the problem goes away if I put the TGFX fonts back in internal flash. It also goes away if I switch back to full frame buffers rather than using partial frame buffers. ( I have restrictions on ram usage, so partial frame buffers are needed)I've given the TGFX FreeRTOS task lots of stack but that doesn't fix the problem. I put a scope trace around the TouchGFXHAL::flushFrameBuffer(const Rect& rect) routine. I
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.