首先描述一下问题现象。
先看下主函数的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。
|