cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeIDE and TouchGFX integration

mandrake
Senior

I am having difficulty integrating STM32CubeIDE and TouchGFX to run on STM32F746GDiscovery. I have (I believe) all the SW loaded. I can run IAR EWARM, Atollic TrueSTUDIO, STM32CubeMX, STM32CubeIDE, TouchGFX. I have read and followed too many articles and updates until my head spins.

I believe ST needs to do a total revamp on their IDE and software support products and naming practices. For example, a clear distinction of TrueSTUDIO, STM32CubeX, STM32CubeIDE, X-Cube-TouchGFX, etc. would be nice. How about what is the difference between TouchGFX Designer and TouchGFX Generator? I read the description four times and I am still clueless.

I read that Middleware>Graphics has been dropped. Nice. Where is this documented? Then I have to go to Help>Manage Embedded Software Packages. Where is this documented?

How about a single product tree that shows how all of these modules are connected? How does one know which ones need to be installed and which ones are already embedded?

How about a single packed called STM32IDE with everything done in one download?

Maybe that's too much to ask, you think? You would think that that is what I for Integrated means.

End of my rant. (I have been using STM32 products for almost 10 years.)

Meanwhile, it's back to reading through piles of advice on how to get this thing done!

If someone has the easy answer on how to get STM32CubeIDE 1.2.1 working with TouchGFX 4.13.0 please let me know.

7 REPLIES 7
mandrake
Senior

Update: the next day.

I appear to be making some progress. I had neglected to state what is my problem. Nowhere on the STM32CubeIDE can I find how to invoke TouchGFX.

Hunting around the Project Explorer tree I double click on an entry ...myproject.ioc.

There is a tab called Additional Software. Under Pack Vendor > STMicroelectronics I see Pack/Bundle/Component > STMicroelectronics X-CUBE-TOUCHGFX

Yippee!

I don't know what I did but at some point I clicked on Build.

Lo and behold TouchGFX appears on the Project Explorer tree.

Double click on ApplicationTemplate.touchgfx.part and bingo! TouchGFX Designer is launched!

Ok. Now I can design my Touch GUI.

The project builds without error.

Now I can build and flash the target STM32F746G-Discovery. The code runs but nothing on the display as yet. Something to do with the Configuration.

Making slow progress here.

svcguy
Associate III

I feel your pain. Since TouchGFX 4.13.0 came out, integrating with STM32CubeIDE 1.2.1 is a pain. Even when i generate a project directly from TouchGFX first and importing into CubeIDE, all i get is a white screen. So after 3 weeks or so, the only solution that I was able to get a working project going is to copy missing files and updating some file(s) with missing code. I've made a tutorial on YouTube https://www.youtube.com/watch?v=12KXreXaLp0&t=24s

mandrake
Senior

Day 3

Thank you Karl and svcguy. Now I know that I am not alone. Your posts have been very useful in that I have discovered similar issues by simply hunting around, such as having to rename the __.ioc file generated by TouchGFX Designer.

Best of all, this has led me to find the newest youtube video, posted Jan 23, 2020 by embryonic.dk

https://www.youtube.com/watch?v=o42r4xXOnbo

This appears to be the best explanation so far that I have seen. It means having to cut and paste missing code into user code sections in main.c.

I could not have figured this out by myself.

(One question is why does STM32CubeIDE generate main.c file and not main.cpp even though C++ code generation was selected? IIt doesn't appear to matter.)

So, thank you embronic.dk for an excellent video. I am going to try this today and will update you all on my progress.

Today is looking promising!

mandrake
Senior

Success at last!

Platform:

Win 10

STM32CubeIDE 1.2.1

TouchGFX Designer 4.13.0

STM32F746G-Discovery

Step 1) Follow the instructions given by the youtube video posted Jan 23, 2020 by embryonic.dk

https://www.youtube.com/watch?v=o42r4xXOnbo

This will get the the LCD display functioning. However the touch controller does not run because of missing files.

embryonic mentions towards the end of the video that if you use installation method 1 you should not have this problem. I could not get this to work.

Step 2) Follow the instructions given by Karl Yamashita where he gets to installing missing Drivers/Components.

https://www.youtube.com/watch?v=12KXreXaLp0&t=24s

I didn't follow the instructions exactly but the basic idea is to create a working template with TouchGFX designer. Browse Code and copy the missing components called for when the Build command emits build errors. These components are located in Drivers/Components.

In particular, I had to satisfy the request from ft5336.h to

#include "../Common/ts.h"

Now lets hope ST gets around to cleaning up this mess soon!

Michael K
Senior III

I just went through a similar process as you. We seem to be right in the middle of ST revamping how TouchGFX integrates with the rest of the ecosystem. As such, a lot of documentation is either old or incomplete at this point, and there are still bugs in the implementation. But they have a presence on this forum, and they are doing what they can.

How I ended up integrating TouchGFX 1.13 and STM32CubeIDE for the F769NI-DISC0 was using TouchGFX Designer (the UI making tool, not Generator which is part of CubeMX) and creating a new project using the STM32F769NI application template V3.0.0. This created an IAR, Keil and STM32CubeIDE project. Using TouchGFX Designer I was able to make the front end UI elements for my project. Using CubeIDE I was able to modify the IOC and write the hardware code. Debugging with CubeIDE was basically non-functional (especially given the lack of thread-awareness), and building/downloaded required me to add a line to the generated linkerscript. What I always ended up doing was editing the code in IDE and then running target from the Designer.

Note that TouchGFX also has a simulator that generates a Visual Studio project and solution. This is super handy for quickly debugging the UI front and backend, but you'll need to isolate your hardware calls using #ifndef SIMULATOR because the simulator only builds the TouchGFX side of things.

My beef is ST's SW naming convention is totally confusing for a seasoned ST user and much more so for a new user. How are they going to be able to attract and retain new embedded designers? I have been a seasoned STM32 and IAR user for over 10 years.

I have code with function calls to BSP, HAL, MX, etc.

I have gone through CMSIS, BSP, HAL, CUBE, CubeMX, CubeIDE, TouchGFX Designer, TouchGFX Generator, FreeRTOS, Atollic STUDIO, TrueSTUDIO, etc. I know they all mean different packages but how does the newcomer know what is in and what is out, what is preloaded and what you have to chase down?

Oh, I know ST is a HW company and does not create their own SW. But they still need to get their act together.

It would be nice if you loaded one app and the required packages follow automatically when needed. I see this approach is now being implemented.

That's my rant.