Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello, I'm using windows 10 and can not connect to internet. What can I do? TOUCHGFX 4.21.0
I'm building something with STemWin object libraries v 5.28 or 5.32 for IAR (STemWin532_CM7_IAR.a) and get warnings:Warning[Lt009]: Inconsistent wchar_t size GUI_BMP.o(STemWin532_CM7_IAR.a) and 158 other objects in STemWin532_CM7_IAR.a have wchar_t size 16 bits aes.o and NNN other objects, some of them in ... and 73 other libraries have wchar_t size 32 bits The release notes for IAR states that <QUOTE>In EWARM version 7.80 and earlier, the size of wchar_t was 2 bytes wide and the runtime attribute was set accordingly.In EWARM version 8.10 and later, wchar_t is 4 bytes wide.</QUOTE>Can ST provide the libraries for IAR built with a modern compiler version, please ?
I searched and saw others had this problem but for the life of me, I can't figure out how to see the answers to the questions when I search? I hit every button and arrow but nothing show the answers.Setting that aside, I need to include .hpp files into my main.c file. I changed it to main.cpp and I see now that there is another main.c file in the touchgfx generated code that looks nothing like mine (in a different directory). Also, I see that even though I changed the name to main.cpp, the file is still main.c on the disk? So when I compile the code, it treats it like main.c and errors all the class statements, etc (c++ functions).So:1) why can't I see question answers2) why can't I change the name of the main.c file to main.cpp or is there another copy kept in the IDE workspace? I can't find it when I search 'files'.3) I cant change the .hpp files to .h out of the quesiton.Thanks
Hello dear STM32 Community family. I'm trying to keep up with a project that occupies me almost every day. I have a touch panel with TMA568 driver. I want to run this with the STM32F4 series. However, I could not find any documents or resources related to tma568 on the internet. I am asking for your help in this matter. This project is very important to me. Your valuable help will be really appreciated. Thank you from now.Kind regards.Have a nice working day for everyone.
Hello,I am using the STM32H7B3I-EVAL board with TouchGFX and I am trying to implement a feature that uses external buttons to switch between screens. I am utilizing the "Hardware button is clicked" interaction in TouchGFX and I am using a polling method to see if two different buttons are clicked. If Wakeup Button is clicked, go to the previous screen (i.e. If I'm on Screen 2, go to Screen 1)If the Tamper Button is clicked, go to the next screen (i.e. If I'm on Screen 2, go to Screen 3)I followed the method in the following tutorial video:https://www.youtube.com/watch?v=ufvJ5bcesL8When I generated the TouchGFX portion of the code, it made this event for if the hardware button is pressed://Handles when a key is pressed void Screen2ViewBase::handleKeyEvent(uint8_t key) { if(1 == key) { //Screen2to1IntHW //When hardware button 1 clicked change screen to Screen1 //Go to Screen1 with no screen transition application().gotoScreen1ScreenNoTransition(); } if(0 == key) { //Screen2to3I
..
I know why engineers have round red marks on their foreheads now. Slamming their head in the desk repeatedly.I have a STM32H757I-Eval board that I am trying to setup with TouchGFX. I'm using STM32CubeIDE. Because of a bug, you cannot generate the template under root because TouchGFX will not find the root .project file.So, generating the project with the virtual folders and file links. The issue is that the CM7 project has several link deleted on re-generation of the project.Make a change in CubeMX.Generate codeMiddlewares folder missing in CM7 projectSTM32h7xx_HAL_Driver folder missing in CM7 projectI can copy and paste the folders from the CM4 project and fix the 172 compile errors but this isn't a long term fix.Any ideas on what I could change to fix this?
Hello everyone,Im faced with problem. I want to save headline name typed by keyboardThis is how I copy buffer to wildcard When I sent keyboard[2] to view like this:And throught presenter I save string to model:Presenter:Model:And in model I create Unicode::UnicodeChar* array like this. Am I doing this right?:When I store this data to model I take this info in other screenHere I take headline name and send it to getControllerText functionhere is this function:It is OK how I store Unicode::UnicodeChar* strings? Because when I want to save 2 strings then second string replace first one and it becomes the same. Maybe someone see the problem?When I store one string:The second one replace first string and second and I didint see why..
Hello,I created a project in Touch GFX designer. Then I open in STM32cubeIDE, but I get a warning:Description Resource Path Location TypeInvalid project path: Include path not found (C:\TouchGFXProjects\MyApplication_1\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS). STM32F746G_DISCO pathentry Path Entry Problemthank you for answer
Hello everyone, I want to ask what is the best way to save data. I understand that I need to use Model to save. I am kind a new in c++ programming so maybe there is a way to save data in model structs? Can someone help me?for example I want to save all these selected text to model:I'm using functions which goes to presenter and when save to model. But I save this texts one by one and it becomes mess. In my project will be a lot of configuration data and I need to somehow save it.
We are using SPI TFT 3.2" ili9341 with STM32F072RBT6 board. We were able to accomplish successful display of BMP image but not able to view the image in portrait mode loaded from left side. If we try to change the orientation, the image does not load. This is the TFT...https://thinkrobotics.in/products/inches-spi-tft-display-module-1?variant=16353637564488attaching the code below.int displayImage(const char* fname) {// UART_Printf("Openning %s...\r\n", fname); FIL file; FRESULT res = f_open(&file, fname, FA_READ); if(res != FR_OK) { //ILI9341_WriteString(0, 10, "f_open() failed, res = %d\r\n", Font_7x10, ILI9341_RED, ILI9341_WHITE); return -1; } // ILI9341_WriteString(0, 20, "File opened, reading...\r\n", Font_7x10, ILI9341_RED, ILI9341_WHITE); unsigned int bytesRead; uint8_t header[34]; res = f_read(&file, header, sizeof(header),
Hello All,I was wondering how i would go about wiring up a MIPI LCD screen to a stm32 mcu?sorry for the dumb question i am brand new to using stm32s.
I've been working with the cubeide and touchGFX. It seemed to be working but when I tried to import another project, the IDE gave me a message stating that, even though the new TGFX project was named something else, it was going to import it as the name of the board I am using and overlay the current project. So i tried to copy the code in the current project and it bombed with a 'null pointer' error. I exited and came back in, tried again thinking I would get different results (duh) same error, out/in again, tried to rename the project I'd been working on, null pointer again, out/in again, original project I was working on is gone, just one line of project information. That suxs. So I can't rename projects and can't copy them I guess. I'm using the latest code.Thoughts?
I generated a touchgfx project and figured out the structures. I am able to change the chart and plot new data. What I don't understand is the generator it allows me to create multiple lines but I can't figure out a way two separate the data or add data for each line. It looks like in order to have multiple series on one chart I have to overlay separate charts on top of each other? If not, how do I add Data for each individual line? For instance, I created a dynamic chart. I added four lines and then asked her to generate dummy data. The chart is 800 points wide and it generated 800 points of dummy data even though I would've thought it would generate 3,200 pts. I then looked at the resulting code and I can't see any way to add Data to each line. I read some of the other posts it looks like I have to have a separate graph object. I assume I overlay those on top of each other?Thanks, this coupled with freertos has opened up some new capabilities for our app.
I am using STM32H745BIt6 device, and wanted to write a test for testing the LCD interface using LTDC.Basic text,font and color set for text, backgound color should be displayed . Where can I get the routines which I can easily port on my custom boardThanksAnuj.
I have created a custom container available in multiple screens that can be used for adjusting a selected menu value.Each screen has a number of selectable parameters and when the parameter is selected a custom container becomes visible containing a flexbutton bearing the selected parameter title along with a scroll wheel to adjust the value, and a simple text box containing a wildcard text to show the units of the parameter (like ppm for instance) . The flexbutton is used to lock in the adjusted value and make the container invisible again.I have created a routine called 'setText' within 'customcontainer1.cpp' which sets the two wildcard texts depending upon the index of the parameter selected in the main screens.I know this routine works if i call it when the screen is first accessed I.E when 'customcontainer11' is created when i first access screen 1 or 'customcontainer12' is created when i first access screen 2. I checked this by temporarily putting the 'setText' inside the routine
I am having trouble with the ClickListener. I am trying to debounce the click event somehow. My first instinct is to delay and then check to see if the click is still present, but I am not sure it will work with this function because it seems that the click is an event that is triggered. For example, here is one of my click hander calls:void MainView::circleClickHandler(const touchgfx::Circle& c, const ClickEvent& evt) {Any suggestions on what the proper way to debounce a ClickListener object is? The buttons that are built-in widgets seem to do this with no additional code. Thanks in advance!P.S. - programming with the STM32F469I-DISCO board.
Hello everyone! I created my first project on the STM32F429I using TouchGFX by following several tutorials on the Internet.I have a big problem: after setting the graphics on TouchGFX and generating the code .. when I open the project in STM32CubeIDE the .ioc file does not appear (I don't think it even exists in the project directory).I don't have enough skills and I am not able to replace the functionality of the .ioc file .. i.e. I can't manually initialize peripherals like CAN bus, ADC etc. and I would really need the .ioc file.The first solution I tried was to install CubeMX, but I don't know how to link the 3 softwares: CubeMX + System Workbench + TouchGFX.So I am asking for any kind of procedure (other than using CubeMX) to solve this problem and see the .ioc file created.STM32CubeIDE version: 1.10TouchGFX version 4.20
Hello,I have written my 4 bit grayscale, 256x64 OLED driver using SPI, and I want to visualize my throttle position. The throttle value ranges between -100 and +100 where -100 means maximum deceleration and +100 the maximum acceleration. So far, I have successfully implemented the buffering technique in SPI, which is insanely fast and I can eliminate for loops. As the range increases from 0 to +100, a rectangle rises from the middle to upwards, and from 0 to -100 a rectangle increases from the middle to downwards. The previous version used for loops which were incredibly inefficient, so I started using buffers. 1 byte controls 2 pixels that have 16 brightness levels. 0xFF = 2 pixels at max brightness.The problem is that if I decrease the size of the rectangle, it stays in the OLED's GDDRAM and they are not automatically written over with zeros. I am using a bitmap array for the black and white rectangles. The size of the black and white rectangles is 6x56 pixels. In my case, one row is
I am using a custom gauge, but the movement of the needle is always not very smooth.is there any way to improve this?
HiI have the situation, that on one screen several buttons with only one color and rounded corners has to be placed. (see screenshot) But the corners are different on every button.The easiest way would be to generate two images (for released/pressed button) for every button, but this is very ressource intensive (memory) for such simple buttons. If possible I would like to avoid this case.With the flex button i have the option to add a box. Is there an option to specify a radius for every corner?Or are other concepts applicable for this situation?Is such a feature planned for next releases of the designer (maybe in version 4.11)? When will the new release available? I've seen that this will include new text options which are very interesting for me.Best regardsMarco
Hi,I'm trying to interface 400*400 camera with 800*480 lcd display.i have done changes for lcd as per the datasheet but still im not getting output as expected.before i have already interfaced 400*400 camera with 480*272 lcd display it's working fine, but now I'm trying to interface with 800*480 lcd.
Hi,Currently I have 5 STM32F469I Discovery boards:1 x MB1189 B-02 (Revision that is not mentioned in the User Manual, chapter 6.2 product history).4 x MB1189 B-08 (F469NIH6).Have been using the B-02 for some time without any problems.When I use any B-08 board with a default TouchGFX (4.20) template the display does not turn on. When I check the debugger all the display commands (OTM8009a) commands have a time-out.Even without flashing the B-08 boards when they come straight out of the packaging, the display does not turn on when I connect the usb cable.However, when I try the precompiled demo from 2019 (from this page) the display does turn on, but the program enters some fault handler as it gets stuck. On the B-02 board this demo does run without problems (except that the images are not loaded from the external flash).What is the difference between these boards, which driver do I need to control the display?
I can make an application and load it into the IDE. I'm very familiar with programming the STM32s. I created a simple app that creates a dynamic chart. I can see where the dummy data is loaded into the chart in the base code. I have a few questions and I am using the STM32CUBEIDE.1) Why aren't all the includes added to the project in a way they can be easily edited? I can see them and it seems like some are locked out as read-only and I haven't taken the time to explore how to unlock them.2) I can see where dummy data is added, I a read thru the charting example where it says :To add data points to the Dynamic Graph, the method addDataPoint() is used. The following code example shows how to add data points to a Dynamic Graph, by overwriting the handleTickEvent() method. What do they mean by that? I tried to modify the system1view class as in the example code and add my own handleTickEvent but it wouldn't let me modify the hpp include. So I fought with that but in order t
Hello everyone,Because I haven't found anything similar, I would like to ask you about my issue. The problem is screen tearing on the LCD with 1024x600 screen resolution. I'm using LTDC with RGB888 interface and RGB565 color format, so I have 16 bpp color depth. Because internal SRAM of STM32H725AE is not able to store such big framebuffer (1,2 MB). I'm stroing it in external memory which is APS6408L-3OBM-BA 133MHz, OctoSPI, PSRAM by AP Memory. LTDC clock is running at 51.2 MHz clock rate according to LCD datasheet and the memory is running at 130 MHz. I configured the MPU as well as ICashe and DCashe to increase the memory performance. I've also chcecked if I have any FIFO underrun flag set during the write to memory, but the flag is unset.BR, Jan
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.