Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi,I am faced with some color issues on a custom board (STM32H7A3). A 800x480 24 bit LCD is connected and the LTDC pixel format is RGB888. For testing is set the background color within LTDC initialisation to: hltdc.Init.Backcolor.Blue = 128; hltdc.Init.Backcolor.Green = 128; hltdc.Init.Backcolor.Red = 128;i would expect grey but the screen shows light greenattached the ltdc codeany suggestion what could be wrong?best regardsSebastian
Hi all,I'm trying to put some TouchGFX data (images, text, ...) in an external flash (S25FL128L) on a custom board with STM32H7B0VB mcu. I'm using the octo-spi peripheral as quad-spi.So, I followed the guide to make an external loader and I did it. It seems to work properly: if I load the .stdlr file in the STM32CubeProgrammer I can read, write, erase sector and mass erase the external flash.Also, if I try to debug (STM32CubeIDE) a project using the loader without putting elements into external flash all works well and I can see all the memory locations.The ploblem occur whe I try to put somenthing inside the external flash. I do that in the linker script with TouchGFX sections: IntFlashSection and TextFlashSection. See the script below:/* Entry Point */ ENTRY(Reset_Handler) /* Highest address of the user mode stack */ _estack = 0x20020000; /* end of RAM */ /* Generate a link error if heap and stack don't fit into RAM */ _Min_Heap_Size = 0x200 ; /* required amount of heap */ _Min_Sta
hello" STM32F429I Discovery Button sample demo " during the examples of TouchGFX.An error occurs in the project created in TouchGFX.The error contents are as follows.It is an error that the #include "stm32f429i_discovery.h" file cannot be found, but the folder does not exist in Drivers.Add toIf you download it to the board directly from touchGFX, it works normally.However, when I run the project in STMCubeIDE and build it, the above error occurs.What should I do?thank.
Error[Pe738]: a class-qualified name is required E:\project\insulation\iso_monitor\isoMainx\TouchGFX\generated\gui_generated\include\gui_generated\containers\CCDisResDiagBase.hpp 33 touchgfx::GraphElementLine ;Error[Pe029]: expected an expression E:\project\insulation\iso_monitor\isoMainx\TouchGFX\generated\gui_generated\src\containers\CCDisResDiagBase.cpp 38 .setPainter(Painter);.setLineWidth(1);graph.addGraphElement();
Hi,I'm using touchGFX.MCU : STM32H747idisplay : ILI9806Etouch pannel : GT911I'm developing multi-task using touchGFX.task1 : uart with another mcutask2 : led on/offtask3 : get button stateI'm trying to reduce power consumption of entire system when the display is turned off.And, another task must be running.The current consumption of my board is about 280mA when display is turned on.When display is turned off, the current consumption is 200mA. (backlight is turned off)Now, I have to reduce more power consumption.Is there any function or method for reducing power consumption of gui_task?Or, Can touchGFX be operated with low power? (below 100mA)regards,Youngjun
Hi ,I am trying to implement a project with STM32H753i evaluation board with LCD TFT display. In that I want to implement GUI interface using STemWin application. I have referred the example 'Hello world' project but I am not able get STemWin graphics option using STM32CubeMX and STM32CubeIDE in my standalone project while creating. Is there any way to get STemWin application in the STMCubeMX for STM32H753i evaluation board please give any suggestion. I have also tried with older version of cubeMX(4.26) but could not configure.Software used:STMCubeMx V6.1.2STMCUbeIDE V1.10.0
Hi everyone, I am currently trying to write a generic error dialog for displaying messages to users. To achieve this, I created a container with a TextArea with a single wildcard. The wildcard's initial value is set to "> text goes here <". Everything works fine as long as I use static error messages, such as "Wrong code".However, now I'd like to show a more dynamic error message such as "Version mismatch! Expected: <v_expected> - Actual: <v_actual>" (e.g. "Expected: 1.2.3 - Actual: 3.2.1"). Now, the resulting message looks like this:"Version mismatch! Expected: > text goes here < - Actual: ".Notice that the initial wildcard text is set for the first value and the second wildcard is empty. Is it possible, to pre-replace wildcards and just pass the text with replaced wildcards as the input to the Error Dialog? I'd like to have localized error messages with dynamic content.EDIT: I know that there is the possibility of having two (2) wildcards, however I'd like to
Similar to this:https://support.touchgfx.com/4.20/docs/development/ui-development/touchgfx-engine-features/using-binary-fonts#generating-binary-fonts-in-another-project....I have a separate project that produces my binary translations and for the most part, don't use the translations in the main project. I noticed however that the main project is required to have greater or equal the number of text translations than the number of text translation in the binary translation.It seems to be limited by code in setLanguage() in Texts.cpp where it uses the internal static table size (getInstanceSize()) rather than pulling a size from the binary file. if (currentLanguageTypedText) { currentLanguage = id; touchgfx::TypedText::registerTypedTextDatabase(currentLanguageTypedText, TypedTextDatabase::getFonts(), TypedTextDatabase::getInstanceSize()); }Is this an oversight? It seems kind of limiting to always have to increase the size of an unused table (or setting it to beyond what one might po
we use GraphWrapAndClear and update the graph every 1 second, it works fine. but the problem is after running for long time (over 12 hours), there is some short line flicker on the different part of screen. if we move out of this screen, and come back, the flicker disappeared, every thing is fine again. it seems running longer time cause the problem. Do you have the similar problem? I am using TouchGFX 4.17.
From the licence conditions of vairous font providers (Microsoft, Google, Monotype, Linotype) it is not clear to me, which fonts are allowed to use in the embedded project freely, which need licencing and which are not allowed to use in embedded devices at all.Currently I use GNU "Free Sans", this is fully free and includes all characters you could need. It is however a bit different from our "Avenir", from which the licence conditions are not clear yet and our licenced version lacks also the subscripts glyphs (the paneuropean version however would have it). Our webpage uses apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"Segoe UI is from Microsoft and is be provided with Windows. It is allowed to create, display and print content as permitted by the licence terms of the product where it was included or you may download it temporarily to a printer or other output device. Any other use is
STM32F469I-disco : https://os.mbed.com/platforms/ST-Discovery-F469NI/https://www.st.com/en/evaluation-tools/32f469idiscovery.htmlSTM32F302R8 : https://os.mbed.com/platforms/ST-Nucleo-F302R8/CAN shield : https://www.amazon.it/AptoFun-Receiver-Protocol-Controller-Development/dp/B082B9JKH1Hello everyone, I’m still inexperienced and I have to use the CAN with the F469I screen, but I was unable to operate the built-in CAN1 and CAN2 (honestly, I still don’t understand why CAN2 doesn’t work.). So I decided to use a CAN shield (SPI-CAN) but I can’t figure out what I’m doing wrong.In particular, I use this library : https://github.com/eziya/STM32_SPI_MCP2515This is the main.c/* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "cmsis_os.h" #include "app_touchgfx.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "../Components/otm8009a
helloThe scroll wheel is set and used as follows.void ScrTopSetView::scrollWheel_ScrTopSet_minuteUpdateCenterItem(CustomContainer_temp_wheel& item, int16_t itemIndex) { // Override and implement this function in ScrTopSet int data; minute = itemIndex; Unicode::snprintf(textArea_ScrTopSet_nMinuteBuffer, TEXTAREA_SCRTOPSET_NMINUTE_SIZE, "%02d", (minute )); textArea_ScrTopSet_nMinute.invalidate(); }One step at a time is good.I need a configuration that changes by 1 step or 10 steps depending on the setting value, but I am not sure how to set the 10 step change.I'd like to know how to set the level at which the scroll wheel changes.thank.
Hi,I am trying to achieve the functionality of a dropdown list having multiple fonts listed and upon selecting the desired font the textArea font gets changed at runtime.As shown in Image the Selected font is "Times New Roman" and I want to make the textArea "EC:\> Hello World" written in that font and able to change it vice versa.
..
The voltage measured was approximately 3.3v at the pins of the joystick. As the direction changes the voltage drops to 0vs. I'm yet to work with the task and I understand that all inputs on the GPIO pins are set to analog by default. My question is, what is the possible cause of not reading the inputs of this unit considering my simple setup? Please point me to the direction where I could read more about this Board.Thanks in advance,Hiram
MCU: STM32L4R9ZIJ6PSRAM: APS1604M-3SQR-SNDisplay: 800x480, RGB888, 24-bitHi, I'd like to use the mentioned PSRAM to store the TouchGFX framebuffer using OCTOSPI in QuadSPI mode.I have tried setting the Frame Buffer Start Address to OCTOSPI1_BASE (0x90000000), but that does not seem to work. I only get junk data.I have read the TouchGFX docs, LTDC datasheets, and OSPI datasheets very thoroughly, and still cannot figure it out.Additional Q's:How does the MCU "know" an external PSRAM has been added?Should I have used FMC for this procedure instead?Note: I am using a custom board/application. Please assume the hardware is correct for the sake of discussion.Any help would be appreciated. If any further clarification is needed please ask. I will include an image of the LCD display image as it stands.
#include <stdio.h> #include <stdint.h> #include "stm32f4xx.h" void delayMs(int n); void LCD_init(void); void PORTS_init(void); void LCD_DATA(char DATA); void LCD_commands(unsigned char commands); int main(void){ LCD_init(); LCD_DATA('l'); LCD_DATA('o'); delayMs(1000); while(1) { /* Write "hello" on LCD */ LCD_DATA('h'); LCD_DATA('e'); LCD_DATA('l'); /* clear LCD display */ LCD_commands(1); delayMs(500); }} void LCD_init(void){ PORTS_init(); delayMs(30); /* initialization sequence */ LCD_commands(0x30); delayMs(10); LCD_commands(0x30); delayMs(1); LCD_commands(0x30); LCD_commands(0x38); /* set 8-bit data, 2-line, 5x7 font */ LCD_commands(0x06); /* move cursor right after each char */ LCD_commands(0x01); /* clear screen, move cursor to home */ LCD_commands(0x0F); } void PORTS_init(){ RCC->AHB1ENR |=0x06; GPIOC->MODER &=!(0x0000FFFF); GPIOC->MODER |= 0x00005555; GPIOB->MODER &=!(0x0000FC00); GPIOB->MODER |= (
Hello, we are having trouble with our application binary size. Inspecting the binary, I noticed that TouchGFX frameBuf is stored in .data section, meaning that it takes about 150kB of flash space in addition to RAM space. Is it possible to store frameBuf in .bss so that flash space is not used? If I understand correctly, it could be initialized to just zero? According to documentation:> Use the section "TouchGFX_Framebuffer" in the linker to specify the placement of the buffer but I have not been successful trying to modify the linker script
I'm using a custom board stm32f469IIT , using a PS043BWSA03 LCD (RGB888) using the touchgfx library and STM32touchcontroller (LTDC RGB565). there is a problem when reading the touchscreen axis (example in photo). is there a solution?
Why touchgfx combines alignment and font with translations?We have same translation in many fonts and alignments, and we must create new Resource for each. Does not seem to make sense. Am I missing something?We end up with a lot of duplicates of the same text content, that make translations very difficult:<Text Id="EDIT" Alignment="Left" TypographyId="mainFont20_full"> <Translation Language="en_US">Edit </Translation> <Translation Language="fi_FI">Muokkaa </Translation> <Translation Language="it_IT">Modifica</Translation></Text> <Text Id="EDIT_CENTER" Alignment="Center" TypographyId="mainFont20_full"> <Translation Language="en_US">Edit </Translation> <Translation Language="fi_FI">Muokkaa </Translation> <Translation Language="it_IT">Modifica</Translation></Text> <Text Id="EDIT_CENTER_32P" Alignment="Center" TypographyId="mainFont32_full"><Translation Language="en_US"&
show circle and change screen are normal,but show image occur hardfault.how to reslove the issue?psr: 0x60000000 r00: 0x20000318 r01: 0x0801da48 r02: 0x00000000 r03: 0x000000df r04: 0x2005f486 r05: 0x0801da48 r06: 0x000000ff r07: 0x00000080 r08: 0x20060106 r09: 0x2007b89a r10: 0x20000436 r11: 0xdeadbeef r12: 0x08017749 lr: 0x0800a66b pc: 0x00000000 hard fault on thread: TouchGFX
안녕하세요TouchGFX 사용 문�?� 드립니다.제가 STM32F401RE 보드 사용중�?��?�, TouchGFX designer�?서는 해당 보드를 지�?하지 않는것 같습니다. TouchGFX designer�?서 STM32F401RE 보드를 사용하는 방법�?� 있�?�까요?
I upgrade to 4.20 from a previous upgrade I did to 4.19.1 and I have those linker error:C:\Projects\projextx\Middlewares\ST\touchgfx\lib\core\cortex_m4f\gcc\libtouchgfx-float-abi-hard.a(PainterRGB565.o): in function `touchgfx::PainterRGB565::paint(unsigned char*, short, short, short, short, unsigned char) const': (.text._ZNK8touchgfx13PainterRGB5655paintEPhssssh+0x1a): undefined reference to `touchgfx::paint::rgb565::lineFromColor(unsigned short*, unsigned int, unsigned long, unsigned char, unsigned long)' C:\Projects\projectx\Middlewares\ST\touchgfx\lib\core\cortex_m4f\gcc\libtouchgfx-float-abi-hard.a(PainterRGB565.o): in function `touchgfx::PainterRGB565::tearDown() const': (.text._ZNK8touchgfx13PainterRGB5658tearDownEv+0x0): undefined reference to `touchgfx::paint::rgb565::tearDown()'Any idea what I did wrong?Thanks
Is It possible to use STemWin for STM32U5 MCUs?Is There a version of STemWin for STM32U5 MCUs or Is it planned in future?
The problem is located in:AudioPlayerPresenter.cpp102 strncpy(copy, fullname, 50);'char* strncpy(char*, const char*, size_t)' specified bound 50 equals destination size [-Werror=stringop-truncation] AudioPlayerPresenter.cpp /TouchGFX/Application/User/TouchGFX/gui line 102 C/C++ Problem
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.