cancel
Showing results for 
Search instead for 
Did you mean: 

CubeIDE 1.0.0 + TouchGFX 4.10.0: Working project inside (STM32F746G-DISCO)

Martin KJELDSEN
Chief III

Hello everyone,

Due to an increasing number of people having issues with CubeIDE and TouchGFX Integration i'm attaching a working project for STM32F746G-DISCO for your inspection - There were a good number of things to do before it worked, only some of which i highlighted in my quick-guide and even some of those steps were a bit ambiguous and could be executed in different ways.

I've written down what i've done to get this project working and i will use this in planning a video tutorial - It has to be somewhat official, so i can't simply start up the screencast and start talking. But i'll keep you updated.

/Martin

84 REPLIES 84

Oh, didn't see this reply before answering your previous one 🙂

yes, there's an issue that every time you re-generate code you'll get your modifications overwritten.

I'm not sure what you mean by updating a text value from the default task. Are you updating the text value in your view? Can you show me some code?

Best regards,

Martin

jea74
Associate III

Hello Martin,

Thanks for your answer, I got the updating working by modifying an example. This basic code works fine with RTOS messaging from main.cpp

Regarding the overwriting issue, would it be possible to have in the Designer an option to disable the generation of the code for the simulator so that it will not "pollute" anymore the CubeIDE project files ?!? (at least it will minimize the manual (re-re-re-re)code excluding and maybe faster than waiting a change from the CubeIDE team ?)

Best Regards, J.

void update_task(void const * argument)
{
  /* USER CODE BEGIN update_task */
    USARTSendString("Enter UpdateTask.\n");
    for(;;)
    {
        messageInfo++;
        uc_i32toa(messageInfo, taskBuffer);
        USARTSendString(taskBuffer);
        USARTSendString(" - UpdateTask running...\n");
        osMessagePut(queueUpdateGUIHandle, messageInfo, 0);
        osDelay(100);
    }
  /* USER CODE END update_task */
}

void Model::tick()
{
	    // Check for messages from backend, with zero timeout
	    osEvent evt = osMessageGet(queueUpdateGUIHandle, 0);
	    if (evt.status == osEventMessage)
	    {
	        uint32_t *message = (uint32_t*)evt.value.p;
                modelListener->UPDATE_VALUE((int)message);
	    }
}
 
void Screen1Presenter::UPDATE_VALUE(int value)
{
	view.UPDATE_VALUE(value);
}
 
void Screen1View::UPDATE_VALUE(int value)
{
    Unicode::snprintfFloat(txtVoltBuffer, TXTVOLT_SIZE, "%f", value/100.0);
    txtVolt.invalidate();
}
 

Hi,

Glad you got something working. About "generating code", then you're in luck, because in 4.12 (we're going to skip 4.11) code generation is a manual thing.

/Martin

jea74
Associate III

Thanks, waiting impatiently 4.12 then ! ...Linux version also ? =)

We're building a zip file for all releases that can be used on linux/gcc. Obviously, there's no designer available, but the tools and creating applications for the simulator are working. I'm not sure what the strategy is re: linux release officially, though. I will get back to you.

/Martin

FloX
Associate II

I am completly new to stm32.

I haved tried to transfer the tutorial to a STM32F769I-DISCO.

Codegeneration in touchgfx is working.

I can't solve the issue "../Middlewares/ST/TouchGFX/touchgfx/framework/include/platform/hal/simulator/sdl2/HALSDL2.hpp:22:10: fatal error: SDL2/SDL_video.h: No such file or directory"

exclude simulator doen't fix it.

What other changes did i need to do?

Hi,

Can you post your entire error log? There are a number of simulator files/folders to exclude

/Martin

DBain
Associate II

Please any update on the notes/video timetable?

DBain
Associate II

BTW is TouchGFX 4.10.0 available for Linux? Cannot seem to install it under wine.

The designer, at least, is not available for Linux. I'm not sure when and if it will be. What are the issues installing it under Wine?

/Martin