cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to output floats using printf() after migrating to latest STM32 FW version.

Tim Russell
Associate III

From my functioning STM32 (H7) project, I open the .IOC file which spawns STM32CubeMX, which generates a dialog asking:

"This project was setup using STM32Cube firmware FW_H7 V1.9.0. The new STM32Cube V6.3.0 works best with STM32Cube firmware version FW_H7 V1.9.0."

A little confusing considering I am already at V1.9.0, but if I select <Migrate>, then exit CubeMX with <Generate Code>. After rebulilding the project, output of floating point variables no longer work (i.e. displayed as 0.00).

If I select <Continue> (instead of Migrate>, CubeMX just displays a blank screen.

The STM32CubeIDE is v1.7.0.

Note, that I have the -u_printf_float linker option selected/enabled.

This happened a few months ago, and the only solution I found to resolve this issue was to create a new project, and import/copy over all the modules into the new project.

Thanks in advance for you help.

2 REPLIES 2
alister
Lead

>after migrating to latest STM32 FW version.

Don't upgrade FW unless you need to.

>After rebulilding the project,

It's your project. You have to diff and revert or fix the changes you don't agree with.

>output of floating point variables no longer work (i.e. displayed as 0.00).

https://community.st.com/s/question/0D50X0000Anrcyj/how-to-use-float-in-printf

https://community.st.com/s/question/0D50X0000AldaPzSQI/cubeide-sprintf-does-not-work-with-f

Is a recurrent problem. Check meta data nodes in project files. Especially ones related to libraries choices, defines, use of nano libs, etc.

Look at .MAP files to get a grasp on what's being pulled in for workings vs non-working builds.​

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..