Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Beginner question here: The widgets that can be selected in TouchGFX designer have standard sizes (small, medium, large). How can i create a widget with a non-standard size? Is there an example for this?
I followed the Tutorial for the QR Code. It works when you draw just one custom widget. But when i add the same custom widget serveral times in the same Screen or in a custom Container, the code is not able to draw all the custom widgets, it seems that the draw function is interrupted and my QR Code it's not complete. Maybe something about the HAL? Any suggestion?I add my example project in 4.16. Thanks!
Good afternoon, I'm trying to use STM32F746ZGTx LQFTP144 for a railway scoreboard.(Commuter train schedule) I have a problem. I ran a BSD project on the Nucleo-144 STM32F746 board from the STM32746G_DISCOVERY examples. I commented out everything except the LCD. Display_Demo Description() Using the oscilloscope, I found that the following outputs of the controller are active.PD9PG12 LCD_B1PG15PG0PD0PD1PH0 OSCPF2PH1 OSCPE4 LCD_B0PA14 SWPE14 LCD_CLKPF13 PD10 LCD_B3PD15PE7PE8PF4PF5PD8This list does not match the description of stm32f745ie. pdf and CubeMX. I hope you can help me figure out which controller pins are actually used to control the LCD. Sincerely, Alexander.
HiI'm gonna change size of a box progress .but it seems that it's size has just some predefined size such that I cannot change it to my custom size.Is there any way to customize size of a standard widget??
On X-NUCLEO-GFX01M1 I would need to manage the on-screen keyboard because LCD is not touch.I have successfully ported keyboard example from designer to hardware (X-NUCLEO-GFX01M1 on NUCLEO-G071).Is it possible to add support for the keypad or is it better to write a new one?If so, what do you think?
I have a layout that uses multiple nested custom containers.View -> MenuCustomContainer -> ListLayoutThe list layout is populated with:MenuItemCustomContainer -> (3 x EditableCustomContainer + Lines and Shapes)Part of my visual layout includes a few Line objects and Shape objects to create formatting, menu item separation, and indicators.No matter how I do it, if there is a visible Line or Shape in either MenuItemCustomContainer or EditableCustomContainer inside that ListLayout my application crashes when touchgfx attempts to draw the screen. Things I've tried so far:I've stepped through all my code. It all runs fine. Until it comes time to actually draw. Stack traceI moved the Lines and Shapes down into EditableCustomContainer. Same behavior.I've removed all my code completely and manually drawn the Line/Shape elements and set them to Visible from touchgfx gui itself with no later modifications in code. Exactly the same behavior.If I draw Line or Shape in View, or in MenuCust
Hi.There is one small annoyance in the TouchGFX Designer (v4.16...), i.e. the initial state of some dropdown panels. Selecting Screens designer page on left side, on the right side there is the respective SCREEN property tab. All the panels are in open/expanded state by default, that's ok. And this state is indicated by an up-pointing arrow/caret at the rightmost side.Next to this properties tab there is the INTERACTIONS tab. Here all the panels are in closed/collapsed state by default, that's also ok. But now the open vs. closed state of these panels (indicated by the arrow direction) is plain wrong. The arrow points up, but the panels are closed. Opening the panel (by clicking the arrow) opens them, but the arrow doesn't change state. Only closing the panel again changes the arrow state. The same issue on Custom Containers designer. A minor detail, but creates "fuzz" in understanding the state of these property pages. Should be corrected in next version...
I successfully used a HAL code I found on Github for driving an ili9341 TFT LCD with SPI then I rewrote the code with registers. Part of my code works and I am able to fill pixels with color but when I try to use a function named ILI9341_Draw_Colour_Burst the code doesn't work. I tried to use the Keil debugger to see what happens and it showed a hard fault occurred. The function code is shown belowvoid ILI9341_Draw_Colour_Burst(uint16_t Colour, uint32_t Size) { //SENDS COLOUR uint32_t Buffer_Size = 0; if((Size*2) < BURST_MAX_SIZE) { Buffer_Size = Size; } else { Buffer_Size = BURST_MAX_SIZE; } LCD_DC_PORT->BSRR |= LCD_DC_PIN; LCD_CS_PORT->BRR |= LCD_CS_PIN; unsigned char chifted = Colour>>8;; unsigned char burst_buffer[Buffer_Size]; for(uint32_t j = 0; j < Buffer_Size; j+=2) { burst_buffer[j] = chifted; burst_buffer[j+1] = Colour; } uint32_t Sending_Size = Size*2; uint32_t Sending_in_Block = Sending_Size/Buffer_Size; uint32_t Remainder_from_block
I am developing a device based on STM32L412KBT6 powered by CR2032 coin cell.I am planning to display coin cell status on a LCD display. For measuring coin cell capacity i am planning to use Fuel gauge/Coulomb meter. Since the device is working on coin cell so is it a good practice to use fuel gauge ?If not, then what are other possible options for coin cell status measurement keeping in mind the ultra low power application.
Hi,İ have custom STM32f767ZIT board with 4.3" pixel 480x272 TFT.I use it by TouchGfx with internal RAM (512K) and FrameBuffer is 255K (16bit color depth)I want to use 7" 800x480 pixel TFT with internal RAM. STM32H743/753 have 1MB RAM.But CubeMX dvnced graphics tool seems does not support MCU's with 1MB RAM. Are there any way to use 7" 800x480 pixel TFT with internal RAM?Regards Serhat
The change in the generated code is in TouchGFXConfiguration.cpp touchgfx_taskEntry().Before the update it called OSWrappers::waitForVSync();Now it calls if (OSWrappers::isVSyncAvailable()) { hal.backPorchExited(); }which does not reset vsync_sem in OSWrappers. So the tick is called again and again.I am not sure if the change came from CubeMX 1.6.10 or TouchGFX 4.15 or STM32H7 1.8.I am using STM32H743, LTDC with internal framebuffer, a RGB565 Display and no RTOS.As soon as AZURE RTOS is available, I plan to use it, but until then I have to keep my application running.I can change the code back to waitForVSync(), but it will be overwritten, when I regenerate the code with CubeMX.
Hi,I am using:touchgfc 4.1.16cobeMX 6.6.1STM32CubeIDE - Version: 1.6.0 - Build: 9614_20210223_1703 (UTC)My target is:STM32H7B3II created a single screen GUI for the target. It builds OK and displays on the target.I then opened the project folder and double clicked on the CubeMX IOC file as I wanted to add my back-end peripherals, namely i2c1, the RTC and an interrupt digital I/O PC7 and the ADC.I made my mods in cubeMX, pushed the create code button and then exited CubeMX.I refreshed the project in the IDE and tried to compile it. The compile failed because CubeMX had screwed up all of the references to the touchgfx code. I then recovered from a backup and tried again. This time I added the Toughgfx package in CubeMX.Still failed.I then tried simply opening cube MX without any mods, pushed the create source code button and the compile still failed.Am I doing something wrong or is CubeMx just being CubeMX?The graphics package is great, the IDE is pretty good, but I am really fed up with
Hello!I have STM32H743 and 2 memory IC - MT25QL128I create array with data 0x01,0x02,0x03,0x04.....0xFF and write it to flashIn singleFlash mode system works good.But in dualflash I see :00 88 02 88 04 01 06 03 08 05 0A 07From Flash1 system reads 00, 02, 04, 06, 08 - it is correct.From Flash 2 system must read 01, 03, 05, 07. But it reads 88,88, 01, 03, 05, 07If I get out MT25QL, and mount W25Q128 (without code modification) - all work OK.What is the possible reason of it?How to fix?
Considering existing posts and instructions in the documentation, I can't manage the framework to call flushFrameBuffer() regularly after a vsync.The main issue is that TouchGFXHAL::flushFrameBuffer() is only called once after the first OSWrappers::signalVSync() (and never again). I've deleted all display drivers and checked with a breakpoint that is only hit once in TouchGFXHAL::flushFrameBuffer(). OSWrappers::signalVSync() is triggered by a button and an external interrupt callback. All code that I added is attached. The board is a F303RE Nucleo. Settings of TouchGFX see below.Many thanks for considering my request.Sync wrapper. Breakpoint hit on each button press. Callback on button press. Calls the wrapper function from above. Breakpoint gets hit.Breakpoint only hit on first button press!TouchGFX settings.
Hi All, is it possibile to change a FlexButton Trigegr from code?I would like to change from toggle to click and viceversa.Has someone some hints?thank's in advance
Why is the touchgfx screen refresh rate 60Hz? Is this fixed? Or does it change automatically, or can it be set manually? If it can be changed, where is it located?
HI All, how can I create and organize in folders all the pictures I inserted on Image section?
I have a brand new STM32H747I-DISCO board and wanted to run the touchGFX demo.After compiling I got this error:Error in final launch sequence:Failed to execute MI command:load C:\\Users\\name\\STM32CubeIDE\\Spielwiese\\TouchGFX\\SW4STM32\\TouchGFX-STM32H747I-DISCO\\Debug\\TouchGFX_CM7.elf Error message from debugger back end:Load failedFailed to execute MI command:load C:\\Users\\name\\STM32CubeIDE\\Spielwiese\\TouchGFX\\SW4STM32\\TouchGFX-STM32H747I-DISCO\\Debug\\TouchGFX_CM7.elf Error message from debugger back end:Load failedFailed to execute MI command:load C:\\Users\\name\\STM32CubeIDE\\Spielwiese\\TouchGFX\\SW4STM32\\TouchGFX-STM32H747I-DISCO\\Debug\\TouchGFX_CM7.elf Error message from debugger back end:Load failedLoad failed
I'm porting toughgfx button example to rt-thread. I tested the environment with led blinking.My environment is as below.tool chains: scons + gas/gcc/g++debugging : openocd + gdbflash program : STM32CubeProgrammer with openjdk and openjfxRTOS: rt-threadBoard: stm32f746g-discoI merged the touchgfx button example into rt-thread. And then I began to experience a hard fault. It starts with touchgfx::touchgfx_init(). I checked that I have no problem with cpp codes, such as new operator and STL. at touchgfx-button/Middlewares/ST/TouchGFX/touchgfx/framework/include/common/TouchGFXInit.hpp:8686 HAL& hal = getHAL<HALType>(dma, display, tc, width, height); at touchgfx-button/Middlewares/ST/TouchGFX/touchgfx/framework/include/common/TouchGFXInit.hpp:8787 hal.initialize();void OSWrappers::initialize()0801c9a0 <_ZN8touchgfx3HAL10initializeEv>: 801c9a0: b510 &nb
I am looking into using an STM32 with TouchGFX to drive a 4.3" TFT-LCD. The TFT-LCD will have ST7282 type of internal driver. Is there driver for this already? Or do I have to write my own?Thank you in advance.
Hi Touch GFX team,Throwing a hard fault error after the,Texts::setLanguage(0);Cube ide version 1.5.0Cube MX version v6.1.1Please suggest a solution
Im using stm32H7 discover board and a co2 sensor which is interfaced through I2C.
Hi team,I'm designing a multiple screens template in my application. I'm using a slider and a toggle button in one of my screen, I kept the slider invisible, and I linked to the toggle button.when I change the state of the toggle button the slider has to appear and vice versa. now I'm changing the toggle button state (let's say ON) so now-slider will appear, after that I'm keeping the slider state halfway.Now when I transitioned to another screen from this screen and coming back, at that time toggle button is in the OFF state and the slider is invisible (which is a default state) which shouldn't happen. Expecting to be in an updated state when I transition back.how do I get the previous update state in the current screen when we switch back to the current screen from another screen.current screen: toggle-button pressed, the slider will appear, and setting the slider to half-way:transitioned to another screen (co2 screen in this case):Now ill press the back button here and ill go t
I am using an STM32H7A3ZI and am seeing some unexpected behavior with the LTDC color keying in L8 mode.Setup:2-layer mode. Layer 1 (background) is fully opaqueLayer 2 (foreground) has CLUT configured such that pixel value 0xFF maps to RGB (0,0,0), the desired transparent colorLayer 2 framebuffer (L8 format) has 0xFF for transparent locations, other values elsewhereThe reference manual says this:If the color keying is enabled, the current pixels (after format conversion and before CLUT respectively blending) are compared to the color key. If they match for the programmed RGB value, all channels (ARGB) of that pixel are set to 0.andIn all CLUT-based color modes (L8, AL88, AL44), set one of the palette entry to the mid-yellow color 0x808000 and set the LTDC_LxCKCR to 0x808000.The first paragraph is somewhat vague ("CLUT blending" - does it mean "CLUT conversion"?), but the second example is clear enough - it implies that the transparency color is compared after CLUT lookup.So I would expe
Buen día amables compañeros. Me encuentro trabajando en un proyecto con la placa STM32F746G-DICO en el entorno de desarrollo STM32Cube IDE 1.5.1 y el genrador de graficos TouchGFX 4.16.0.Pero al momento de complar el proyecto se presentan 3 errores.1. Error: Cannot find the specified linker script. Check the linker settings in the build configuration.2. [makefile:130: fail-specified-linker-script-missing] Error 2.3.Waiting for unfinished jobs.....No he encontrado el prolema.Sialguien sabe que puede ser?
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.