Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi,STM32F429iiI couldn't load image or draw any pattern from different tasks. If I load a bootup image from default task (TASK1), and switch over to another task and try to clear the bootup image and draw my own lines and patterns. But the boot up image not goes away from the screen. I couldn't do any thing from another task over the screen.What could be the reason?Please help me. Thanks,Param.
Due to THE MCU's RAM and ROM limitations, I wanted to use the pre-stored 4bit bitmap data to mix the 16-bit color and display as I mixed.The current method is to use GUI_DrawPixel() every time the color is mixed in the control's custom redraw function.One problem is that GUI_DrawPixel needs to send the set XY command to the screen every time, which is inefficient.Excuse me everybody has the method of what efficiency high point?
I downloaded GraphApplication from this post to try Graph Widget. https://community.st.com/s/question/0D50X0000ALvsTfSQJ/how-to-start-using-the-graph-widget-from-touchgfxopenrepository-in-touchgfx-designerI am using STM32F429i-Discovery Board to display this graph, after adding necessary code to my Screen1View.cpp and importing these files, Graph.hpp, GraphLine.hpp, AbstractGraph.hpp , Graph.cpp, GraphLine.cpp, AbstractGraph.cpp. The graph is still not shown on my Screen1View. On the display, it just show the blue background image from the GraphApplication example.Here is my code.File Screen1View.hpp #ifndef SCREEN1VIEW_HPP #define SCREEN1VIEW_HPP #include <gui_generated/screen1_screen/Screen1ViewBase.hpp> #include <gui/screen1_screen/Screen1Presenter.hpp> #include <Graph.hpp> class Screen1View : public Screen1ViewBase { public: Screen1View(); virtual ~Screen1View() {} virtual void setupScreen(); virtual void tearDownScreen(); virtual void ha
I have a question about the LCD BD in the STM32H747 discovery kit.B-LCD40-DSI1I'd like to know exactly what LCD is in the above product (whether it's frida or KJD) and if there's a data sheet that gives me accurate information about LCD BD Dimension.(Part Position, Consumption Current, etc.)
When the designer generates the code for a screen (file "XXXViewBase.cpp") containing a widget with a wildcard, it generates code like this:txtCount.setPosition(301, 94, 152, 89); txtCount.setColor(touchgfx::Color::getColorFrom24BitRGB(255, 255, 255)); txtCount.setLinespacing(0); Unicode::snprintf(txtCountBuffer, TXTCOUNT_SIZE, "%s", touchgfx::TypedText(T_SINGLEUSEID1).getText()); txtCount.setWildcard(txtCountBuffer); txtCount.setTypedText(touchgfx::TypedText(T_COUNT));where the use of Unicode::snprintf is unqualified.It should be touchgfx::Unicode::snprintf, since the file itself doesn't declare "using namespace touchgfx".The code still compiles just because it implicitly relies on a "using namespace touchgfx" being imported from the auto-generated "XXXPresenter.hpp" (which is included by XXXViewBase.hpp".The presenter is indeed generated with that statement, but it's editable by the user, and it's bad practice to place a "using namespace" in a header file because it can pollute a lot
I wanted to add some more features to the STemWin example that is present in HelloWorld folder in the stm32F429 discovery board directory of the repository on my discovery board.I wanted to add the following features.An external trigger pin,A tripple interleaved ADC working via DMA, A dacBut as soon as I run the function for the external trigger pin initialization in the main function the LCD stops working and the debugger shows that it's stuck in the HardFault handler.This also happens when I add the HAL_ADCEx_MultiModeStart_DMA function in the main.I have tried the same program without the LCD and there's no problem with the trigger or ADC codes. Here's the trigger GPIO initialization code:void GPIO_INIT_EXTI (void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; //__HAL_RCC_GPIOE_CLK_ENABLE (); /*Configure GPIO pin : EX_TRG_Pin */ GPIO_InitStruct.Pin = EX_TRG_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(EX_TRG_GPIO_Port, &GP
..
I am using STM32F469I-Disco board. Now, I am trying to use CAN1 and want to display messages on display using touchGFX. Now the main concern is, the only available CAN1 pins on this board are PA11 and PA12 and I tried and read that those pins are assigned for some USB purposes. So, now I am left with no options to assign CAN_Tx and CAN_Rx pins. I tried to change some of the already assigned pins by GUI, so that I can assign CAN1 pins on PB8 and PB9. But, as I am trying to edit a single thing on CubeMX, it gives 0 errors, 0 warnings but display stopped working. It seems like they don't want us to change a single thing in CubeMX. How can one make an application with much less available pins? In short, How can I make work PA11 and PA12 for CAN1? Please do reply if anyone has any small idea or solution. Thanks a lot in advance.
Hi,I am working on STM32L4R9 Discovery kit and STM32L4R9 Evaluation kit , which has the 390x390 display.I have created a simple project with 2 screens one is with analog clock and two buttons and another one is just with an image. Whenever screen transition happens(Slide or Cover) from screen 2 to screen 1 rendering time is around 36 ms. And as i add more images in the screen 1 rendering time is increasing more and animation is not looking good.Below are the configurations used,Images are stored in External FlashUsing Single Frame BufferDMA2D Enabled and confirmed that setupDataCopy() function is calling in the code.Image format is RGB888/ARGB8888Clock Configuration:HSE : 16MHZSystem Clock : 120MHZDSI lane Byte Clock : 62.5 MHZIs it because of the the single frame buffer usage? If so is there any way to configure Display RAM as second buffer?Could you please help to obtain maximum display refresh speed.Thanks in advance,Bala
On the ST web site, there are CubeIDE 1.3.0 and 1.4.0, but both have some issues with TouchGFX : the first one is too old for TouchGFX, and for the other, TouchGFX is too old.For more details and if I understood well : TouchGFX generate a CubeMX project that works with the version 5.6.1 of CubeMX. CubeIDE 1.3.0 is working with CubeMX 5.6.0.CubeIDE 1.4.0 is working with CubeMX 6.0.0.CubeIDE 1.3.1 is working with CubeMX 5.6.1.
Hi,I would like to make an application that simulates a keystroke when I press a button.I have configured my project as shown in this article and have tried the given code to simulate a looping "hello world" message keystroke but cannot get it to work. (note that there is an error in the article between USB FS and HS)Does anyone see where the problem is please?Would you have any interesting links to tutorials / examples / docs on the use of the HID please?Sorry for the stupid question, I am new to STM32Thank you
We are using STM32F429IGTx microcontroller for our application. We use STM32CubeMX with Keil IDE v5. Our application needs both LCD and internet connectivity. we try to use 800 x 480 TFT LCD ( RGB565 ) for display and ethernet for internet connectivity. So, we configure LTDC with RGB565 and LWIP with ETH ( RMII ) using CubeMX. When we build LTDC and LWIP separately, both work well. When we integrate, LCD works but ETH is not working. We tried to solve the issue but we can’t find the source of it. There isn’t a pin muxing and memory issue. Then I started to comment LTDC initialization function call then ETH is started working. So, I tried to get to the root of it. At last, we figured out, when we comment out either __HAL_RCC_LTDC_CLK_ENABLE() function or HAL_GPIO_Init(GPIOF, &GPIO_InitStruct) function which is the LTDC DE pin, then ETH is working but we can't understand why?I have attached my CubeMx report pdf file ( meraspluginsapp2.pdf ) and the evaluation board we use for your re
HI,I am trying to create a touchgfx application project from cube ide for H750 board. I was able to get everything compiled after merging lot of things from the project created from touchgfx it self for h750 board. But once i run my custom project, it gets stuck inside _binary____ExtMem_Boot_bootloader_bin_start() at 0x8001ca0.This is my call stackPlease help me out. Thanks
When starting project STM32CubeMX with H745-Disco in the section Additional Software -Packs a message No Pack Available appears. There is no option other than to manually add Touch GFX. Which makes the use of this board meaningless. With H750-Disco This problem is absent. Please help me how to include Touch GFX in the STM32CubeMX project with H745-Disco. My idea with the purchase of this board to study the use of ТouchGFX and the use of this processor for future projects, but a bad surprise :(PS: and H747 has the same problem
Hello,I am facing some problem with updating TouchGFX application.I need to use mono-chrome display of 128x64 resolution, driven trhough I2C, and I need to use TouchGFX to display some text using different fonts.Hardware:STM32F3Discovery board, with STM32F303VC MCUIDE:STM32CubeIDE.TouchGFX counfiguration:Interface = CustomFramebbuffer Strategy = Partial BufferApplication Tick source = CustomReal-Time OS = CMSIS_RTOS_V2The software is built following the guidelines from the article: https://support.touchgfx.com/docs/development/touchgfx-hal-development/scenarios/scenarios-fmc/The problem appears when a function OSWrappers::signalVSync() is called - resulting in HardFault. By now, there are only 2 tasks active: defaultTask - loop with osDelay(1), and TouchGFX_Task.I tried to make new application from scratch, for STM32F401RE Nucleo board (project attached), even with empty, immediately returning functions of data to LCD transfer. It also causes HardFault the same way as above described.T
Hi,i'm trying to use a touchgfx with a capacitive touch. I have wrote a simple demo example. During the simulation i can switch an on / off a switch button just clicking with the mouse on it.In my hw integration i'm using the sampleTouch to give the coords to the library. I have checked the coords and they are right but i didn't see any effect on the screen element. it seems that the touch event is not properly caught by the library.Thank you BRbool STM32TouchController::sampleTouch(int32_t& x, int32_t& y) { /** * By default sampleTouch returns false, * return true if a touch has been detected, otherwise false. * * Coordinates are passed to the caller by reference by x and y. * * This function is called by the TouchGFX framework. * By default sampleTouch is called every tick, this can be adjusted by HAL::setTouchSampleRate(int8_t); * */ key_Data_t key_Data; if (cb_pop(&key_Data_CircBuff,(void*) &key_Data)) { x = (int32_t) key_Data.x; y = (in
Hello,I have STM32F4 discovery and trying to integrate TouchGFX with SPI TFT LCD. I implemented the necessary hooks specifically flushFrameBuffer() function.However, my issue is that backPorchExited() never returns and hangs my touchgfx thread, eg: for (;;) { OSWrappers::waitForVSync(); backPorchExited(); }backPorchExited() actually calls tick() function which belongs to libtouchgfx-float-abi-hard.a. I cannot step into library as no source is available and I do not know what it is doing.My question is what could possibly hangs in tick() function. I found a hint that is it hangs after calling sampleTouch() function.My second question is what function call is used to force touchgfx to render the full frame buffer. The reason I ask is when I force flushFrameBuffer in HAL initialize function, there is no valid data in framebuffer, it is supposed to be an image as generated in touchgfx designer. Someone here suggested this should work ?! What could be missing ?void TouchGFXGeneratedHAL:
Hi,I'm trying to make an simple TouchGFX application that update a TextArea. But when i try to call, from Model::tick(), the modelListener pointer and access to the ViewPresenter function, it is not available. So i have probably misunderstanded something. I attach some code to illustratte what i say. //In Model.cpp void Model::tick() { modelListener->newTextToWrite(); } //In Screen1Presenter.cpp void Screen1Presenter::newTextToWrite() { view.updateTextArea(); } //In Screen1View.cpp void Screen1View::updateTextArea() { textArea1.setWildcard((touchgfx::Unicode::UnicodeChar*)"Geek"); }Thanks !!
Can anyone explain to me what the parameters to LCD.blitCopy are?The online help seems to suggest all of the parameters describe the source - sourceData, sourceFormat, source and blitRect all describe the source data. How do I specify the destination?
Hello, I have created one basic project with STM32F746ZG and touchgfx. When I ran my code, In starting only its getting stuck at freeRTOS function vPortRaiseBASEPRI. After debug I found that code asserted at below line of function xQueueSemaphoreTake of queue.c. /* Check this really is a semaphore, in which case the item size will be 0. */ configASSERT( pxQueue->uxItemSize == 0 );This function is getting called by OSWrapper.cpp function tryTakeFrameBufferSemaphore. Here we are trying to take Semaphore "frame_buffer_sem". So in simple words value of frame_buffer_sem. uxItemSize is odd like 480.When I debug more, I found during initialization(OSWrappers::initialize) of Semaphore has all correct values but seems like after sometime its getting all data corrupted. I am really not sure how heap memory is getting corrupted as I just generated code from touchgfx and STM32CubeMX. My heap size is 32768 bytes.Below are the screen shot of memory allocated for Semaphore "frame_buffer_sem" After
Dear ST Community, i tried sometimes but still unsuccessful. can you all provide the STM32H750B-DK , with toughgfx step by step how to set by STMcubeMX, and compile ,programming, verify,debug by Keil procedure. Just want download simple image and run it only.
I am trying to set a callback function for a container in motion using setMoveAnimationEndedAction . Can I only use this functionality from within a container?I have created a custom object that has a member variable Container which is utilizing the MoveAnimator<touchgfx::Container> mixin. When I create the necessary callback and callback handler and try to pass the callback to the setMoveAnimationEndedAction the compiler barfs saying that there is no conversion for my custom object.
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.