Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello! I apologize for the poor translation of Google)))I have a STM32F100VLDiscouvery debug board with an STM32F100RBT6B chip. I try to display a small red square (for familiarization) on a TFT screen on an ILI9341 chip.Through SPI1, it turned out to be derived, but through SPI2 - it does not work at all.I wrote this code for SPI1 and then just remade it under SPI2, replacing the initialization of SPI1 with SPI2 and changing the legs of SPI1 to SPI2.The oscilloscope sees the signals on SCK and MOSI and the width of the SCK varies with SPI2-> CR1_BR.What is the problem? Already 5 days trying to decide ...
I am using touchgfx 4.10.0 on WIN7 pro 64bits,the cpu is I7-4800MQ,memory is 8G ddr3,ssd 256GB.I creat a simple project base on stm32F746G Discovery Kit with two buttons,when I click "run simulator",it takes 11 minutes to popup the simulator window! Again I creat a simulator project ,it takes 14 minutes to simulator ! when the make complier is running,the task manager shows the cpu usage is 2%,the memory usage is 4.4GB,but why the complier takes so much time?
Hi everyone,For some time now I am trying to run the hardware Jpeg codec so far with no results. The whole configures Hal libraries without using it. My assumptions at the beginning are to encode one block of 8x8 MCU in the gray scale. The problem that arose is that I do not know if and how to add a table of luminance and hoffman tables for the gray scale. Maybe someone can tell me or write a fragment of the code from correct settings.Best RegardsDariusz
Hi I am using STM32L476G-EVAL board. L476G Demonstration Program operation was good at purchasing time. and I burned other program hex using ST-Link. (ex GPIO, CAN example)Some days was later. EVAL board TFT LCD Screen was All White. and it seems to be OK in LED control. I checked Jumper setting in data sheet. and tried again firmware download. but TFT LCD was all white. How can I check TFT LCD basic control in hardware and Firmware ?I hope that TFT LCD module(MB989) is not break down.---------------------------------------------------------------------------------------------Evaluation Board name : STM32L476G-EVAL/04-0Compiler : True StudioPower supply : USB power via NotebookFirmware download : ST-LinkHEX code name : STM32CubeDemo_STM32L476G_EVAL-v1.0.4.hex
helloi am using STM32F746G-disco board to interface tft display using TouchGFX Designer and followed the guide as described in UM1718: Tutorial 10: Using ST-TouchGFX framework and generated the code for AtollicTrue studioBefore building the project i have converted project to C++ project from File-New-Convert to C/C++ projectalso i have added the directories as per attached images C++_dir and C_dir But every time after build the project new errors occurredwhat changes should i have to make for working without errors? i am attaching my project for reference
helloi am using STM32F746G-disco board to interface tft display using TouchGFX Designer and followed the guide as described in UM1718: Tutorial 10: Using ST-TouchGFX framework and generated the code for AtollicTrue studioBefore building the project i have converted project to C++ project from File-New-Convert to C/C++ projectalso i have added the directories as shown in (1) and (2) But every time after build the project new errors occurredwhat changes should i have to make for working without errors? i am attaching my project for reference 1.c++2.c
I am developing using STM32F769I-DISC1 + B-LCDAD-HDMI1 + 5' HDMI LCD(800x480) + TouchGFX(4.10.0).I used the TouchGFX designer(4.10.0) to select the STM32F769I DISCOVERY KIT and created the empty project or demo project. I did generate code and I compiled it using the IAR compiler and uploaded the hex file.No picture is displayed on the LCD.B-LCDAD-HDMI1's ADV7533 should be added to the project.How do you add adv7533 code to the TouchGFX project?The hardware configuration is as follows. STM32F769I-DISC1 + B-LCDAD-HDMI1 + 5' HDMI LCD(800x480)Touch is not used.Please answer about my question.
Hi,i startTouchGFX 4.10.0 Environmenticon on desktop and see above message.Can anybody explain or help to resolve ?Windows 10 x64 Pro12GB RAMBest regardsMitek
Wanting to customize this step little I changed thex,y dimensions of the "counter_box.png" using gimp and renamed it "counter_box2.png" which worked OK,My objective is to significantly increase the size of the font,and to maybe rotate 90 or 270 degrees.It seems my first attempt to change the size did not seem to work but after l drag and dropped a second text area widget, then the size change kicks in.(Minor issue but now I can work around this)Next problem is that when I attempt to put my larger text area on toplayer of a lager background "counter_box2.png", then the backgroundalways wants to cover up the text.I really would like to use the background "counter_box2.png" as a background for my 160 pixel text area, but now the backgroundalways wants to obscure the text. It looks like I can run the simulator without the background and now my text number do appear, but..Is there some way to tell TouchGFX for the text to layer on top of the background image. So I can use the background for
I have previously developed a somewhat complex GUI using TouchGFX 4.9.3. I was never able to get it to build using either TrueStudio or SW4STM32. So I was pleased to see that you were going to integrate TouchGFX into CubeMX. Using the new CubeMX 5.0.0, I have been unable to figure out how to incorporate my previous GUI. It appears that CubeMX is forcing me to develop a GUI from scratch. I can do this if I have to but I am hoping there is a way to utilize my previous GUI.
I am using the discovery board and its default code and want to output a video by using an sd card and multiple video formats, although there is no file that is seen by the board. I can only find a document saying that it should be in .emf format but as far as know that does not exist as video format. How do I get to output video by using the default code and is this still the same if I make my own code?
Hello. I am a student participating in a project.I have to take 1080x720 px at least 15 fps video feed and forward it (along some other sensor data) through ethernet connection. Is this possible ?My other question is;How can I store that data on a external memory unit and later send it with ethernet interface ?( When the image size is small the data can directly be stored on sram with dma but my image(s) are 1-1.5 mb in size so this is the reason why i think i need an external memory unit . But if there is a way to send the image data (without capturing the whole frame first) from ethernet interface that would be okay but i researched for 2 weeks and i do not think it is possible.)thanks in advance
1) Created a sample project using CubeMX(5.0.0), TouchGFX(4.10.0) for STM32F46G-Disco board2) TouchGFX GUI : is very simple just three buttons, and a background image – Code generation was OK, No Error3) Generated the code from CubeMX for IAR8.x4) When compile I get error – unsupported bit depth ( See attached image)5) Now when I replace .a files at location (TestCube is my project folder) TestCube\Middlewares\ST\TouchGFX\touchgfx\lib\core\cortex_m7\IAR8.x\ touchgfx_core.a and touchgfx_core_release.a from TouchGFX(v4.9.3) (C:\TouchGFX\4.9.3\touchgfx\lib\core\cortex_m7\IAR8.x\) everything works OK. I know that is the correct wayThe error window: File : ... \TestCube\EWARM\Middlewares\ST\TouchGFX\framework\include\touchgfx/hal/HAL.hppLine : 703Expression failed:0 & "Unsupported Bit Depth"NOTE: TestCube is my project folder
HI,Is it possible to configure FMC as LCD Controller and SDRAM interface in the same unit. I am planning to use STM32F429 MCURegardsAnand
QUESTION - TouchGFX Community repost - Bharathi Sara - Sep 2018I have watched the HW integration video and yet I am still confused. I am using the i2c pins on my STM32F769I-DISCO board. I would like to collect data from that pin and display it on my gui. As far as setting it up goes, I've already managed to collect data just using CubeMX and Keil. I didn't have the change any config on CubeMX.I understand that I will have to write RTOS tasks to collect data from peripherals. My question is where do I place relevant CubeMX files? And as generated by CubeMX there is a main.c method that has a lot of variables and initialization methods that I use defined in main.c. are those functions are variables defined somewhere in the TouchGFX framework? If not do I need to copy them over into my relevant task?For example in order to use i2c, I need to use the i2c handler hi2c1 and the MX_I2C_init() function. This function's implementation is later defined in the main.c class wh
QUESTION - TouchGFX Community repost - BACOU Stephane - Nov 2018Hello,I am building a connected device that will be OTA upgradable through BLE. However, the external flash start to become quite big to be reflashed each time when I add a new image. So I do have a few questions if you don't mind: 1. Will the order of the image in the external flash always be the same between two builds ? Even after a full clean ? what is the used criteria as it does not seems to be the name. Insertion order in the project ? 2. Is there any way to modify this order ? and if not already guarantee, is there a way to make it repeatable ?3. May I define somewhere the target address of each image ? as the relative files are auto-generatedOf course the idea is to make sure that I just need to flash (mainly transfer) modified or new images.ANSWER - TouchGFX Community repost - Flemming Gram Christensen - Nov 2018Hello,The order of the images in the flash is contro
QUESTION - TouchGFX Community repost - JPike - March 2017Hello,Im trying to put a value in to a TextwithWildcard widget to show the ADC value onto the screen. But I cannot get it work. I tried to follow the text_example.My custom function I put in the file Test_screen_1View.cpp (I have the function included in the .hpp file)oid Test_screen_1View::updateWildcard() { Unicode::snprintf(test_val_1Buffer,5,"%d",155); test_val_1.invalidate(); }And the code which TouchGFX Designer generated for me in the file Test_screen_1ViewBase.cpp#include <gui_generated/test_screen_1_screen/Test_screen_1ViewBase.hpp> #include <touchgfx/Color.hpp> #include <texts/TextKeysAndLanguages.hpp> #include "BitmapDatabase.hpp" Test_screen_1ViewBase::Test_screen_1ViewBase() : buttonCallback(this, &Test_screen_1ViewBase::buttonCallbackHandler) { box1.setPosition(0,0,480,272); box1.setColor(touchgfx::Color::getColorFrom24BitRGB(255,255,255)); test_val_1.setXY(163
QUESTION - TouchGFX Community repost - Johnson Thie - July 2018Controlling LEDs on STM32F769 discovery boardI just received a new STM32F769 discovery board and could program the GUI using TouchGFX Designer.But I could not work out a way to control the LEDs on the board. Here are my steps. I placed a toggle button and added an interaction to run a new virtual function: updateLed.I selected "generate code".I modified mainview.cpp (the screen was called "main"):In mainView::setupScreen(), I called BSP_LED_Init(LED_GREEN);In mainView::updateLed(), I controlled the LED according to the button.if (toggleButton1.getState()) { BSP_LED_On(LED_GREEN); } else { BSP_LED_Off(LED_GREEN); }This step is similar to the post in https://touchgfx.zendesk.com/hc/en-us/community/posts/208798869-Compiling-LED-project-in-VS.After deploying to the board (using
QUESTION - TouchGFX Community repost - Tomasz Lasota - Sep 2017HelloHow to scroll programatically to a cretain entry in the list? ScrollableContainer::doScroll() - is protectedTomaszANSWER - TouchGFX Community repost - Martin Kjeldsen - Sep 2017You could create a MyScrollableContainer as a subclass of ScrollableContainer. Then you can make a public function myScroll() which calls the protected ScrollableContainer::doScroll() function.ANSWER - TouchGFX Community repost - Tomasz Lasota - Sep 2017I did#include <touchgfx/containers/ScrollableContainer.hpp>using namespace touchgfx;class MyScrollableContainerA : public ScrollableContainer{public: MyScrollableContainerA(); ~MyScrollableContainerA(); bool doScroll(int16_t deltaX, int16_t deltaY);};#include "MyScrollableContainerA.h"MyScrollableContainerA::MyScrollableContainerA(){}MyScrollableContainerA::~MyScrollableContainerA(){}bool MyScrollableContainerA::doScroll(int16_t deltaX, int16_t d
QUESTION - TouchGFX Community repost - Christian Tavilla - April 2018Hi,I'm new in TouchGFX environment and I developed my first GUI. The second step was entering in the embedded system (STM32F469 - disco) with keil to add my C code.I controlled a LED adding in tick function of model.cpp del BSP function BSP_LED_On(LED1).Now, I modified BSP library (stm32f469i_discovery_lcd.c) automatically added by TouchGFX generating code because with respect to the original library it misses in some function, i.e. BSP_LCD_DisplayStringAt(x,y, *Text, alignMode).I compile my project with display string function without problem but when I program the microcontroller I do not view any "Hello world" text on board display. Something is shown but not a character. Why? Is there a Layer that overlap my text?The final goal of my project is to read a sensor through I2C communication and print the result on display as text.In your tutorial, I saw about wildcard and updat
QUESTION - TouchGFX Community repost - Winston - Sep 2017Hi,I am trying to port the STM32F429 Discovery board to use RGB interface instead of SPI which the board is programmed to do so. From the schematic, it looks like the built-in LCD is wired for RGB, SPI and DBI interfaces meaning I only need to rewrite the firmware. Could you please guide me on how can I do this? Currently, I'm trying by creating a project using TouchGFX Designer using STM324x9I-CUBE which is actually a STM32F429 EVAL since it has the same MCU. I know I also need to rewrite the init for the SDRAM but my thinking is that I can skip this for now since I only want to get the LCD working first so the internal RAM should suffice for a blank screen (240x320 and eventually 320x480 LCD).Kindly advise,Thanks in advance.WinstonANSWER - TouchGFX Community repost - Winston - sep 2017Okay, I made a mistake thinking that the discovery board runs its 2.4" in SPI mode for image transfer. Ap
QUESTION - TouchGFX Community repost - Honza Krejsa - Apr 2016Hello all, I just have come into the situation where I have to figure out again how interrupts are manage in RTOS on cortex cores and how TouchGFX has set up priority and etc. It would be great to have some simple guide for different platforms that summarizes priorities, available values max/min priority for interrupts which can safely communicates with threads and how TouchGFX is preset. Is anything like that available?Thank you very much, Jan ANSWER - TouchGFX Community repost - Soren Pingel Dalsgaard - April 2016Hi Jan,This is a complex topic.We do not have a guide for this I'm afraid. Anyway for background information on Cortex-M priority and their relation to FreeRTOS, check this out: http://www.freertos.org/RTOS-Cortex-M3-M4.htmlMatters are complicated slightly because the amount of priority bits differ across platforms. STM32 is 4 bits if I recall correctly. In&nb
QUESTION - TouchGFX Community repost - Coskun Durukan - Sep 2016Hello,Please can you make an USART example or tutorial with TouchGFX? I can not access the other hardware in any case...Thanks already...ANSWER - TouchGFX Community repost - Armine Derragui - Sep 2016HI,I'm working with Tgfx for 2 months ago and I'm plenty satisfied.I made a pretty cool UI on the STM32f769I board and manage to use the board features (GPIO, PWM, ADC...) by simply implenting the needed code in the model.cpp and model.hpp files.But, I'm trying to use USART driver and as usual, I firstly made some tests with keil in order to understand how the USART driver works. As everything went fine, I decided to implement the USART code in my UI. But, unlike the previous drivers, USART code is in several files : main.c, stm32f7xx_hal_msp.c and stm32f7xx_it.c.I couldn't figure out in which file I could put the "msp" and "it" code in the Tgfx environement. Whatever, I p
QUESTION - TouchGFX Community repost - David Fries - Jan 2017HiWe are running TouchGFX on a STM32F769 CPU and we would like to render videos (MJPEG). We have a running example from ST which does this. However, it runs on FreeRTOS+STemWin.We're trying to implement a similar thing with TouchGFX. I thought I'd use a PixelDataWidget which uses a separate video buffer and then simply render the video frames into it. Is that a sensible approach, or is there a better way to do this?The product development page (http://touchgfx.com/en/product-development/touchgfx-4-6-0/) says that there is already a video player demo for the F7. May I ask how you implemented it?Thanks!ANSWER - TouchGFX Community repost - Soren Pingel Dalsgaard - Jan 2017The PixelDataWidget is a good choice for this. The required complexity of the solution depends a great deal on your target resolution and frame rate. If you're aiming for 800x480 video @24 FPS then that's a lot of bandwid
Question - TouchGFX Community repost - Teo Lucco - September 19 2018Hi everybody,in order to simulate hardware interactions, I'm trying to add a console interpreter I already developed.This console in write in C, so I have console.h and console.c files.What I've done, following this article, was to add an extern reference in frontendApplication.hpp:frontendApplication.hpp ... extern "C" { void MiniConsole(uint8_t c); //#include<gui/common/console.h> } class FrontendApplication : public FrontendApplicationBase { public: FrontendApplication(Model& m, FrontendHeap& heap); virtual ~FrontendApplication() { } virtual void handleKeyEvent(uint8_t key){ MiniConsole(key); } ...As can be seen in prevoius code(commented), console.h and console.c are located in gui/common folder.In console.h, I've the prototype of function MiniConsole:console.h ... void MiniConsole(uint8_t c); ...and in console.c the implementation.console.c ... #include "gui/common/co
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.