STM32 Printf 打印浮点数乱码的问题

Posted 八阿哥无BUG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32 Printf 打印浮点数乱码的问题相关的知识,希望对你有一定的参考价值。

首先描述一下问题现象。

先看下主函数的Printf

代码如下:

int main(void)

	System_Run_Init();//系统外设初始化
	while(1)
	
		Delay_ms(50);
		printf("The battery voltage is:%.3f\\n",Get_Power());//电压输出
	

现象如下:

The battery voltage is:1.223

这个是中断服务函数的Printf

代码如下:

void USART1_IRQHandler(void)

	printf("\\nThe battery voltage is:%.3f\\n",1.256);

现象如下:

The battery voltage is:208333598180464680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000

解决方法

将Options -> C/C++ -> Optimization 设置为default。

以上是关于STM32 Printf 打印浮点数乱码的问题的主要内容,如果未能解决你的问题,请参考以下文章

STM32 Printf 打印浮点数乱码的问题

STM32 Printf 打印浮点数乱码的问题

如何从 LLVM IR 打印浮点数?

SSE1 使用 divps 内在 xmmintrin.h 来划分四个 32 位浮点数并使用 printf?

STM32CubeIDE中文乱码

实现printf 浮点数打印 -- 待解决