求助大家 stm32f7 的浮点运算

2019-07-20 11:28发布

mdk 设置了double precison
设置为double precision。

  //#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)        //这里开启了fpu
    SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));  /* set CP10 and CP11 Full Access */
  //#endif


    static double f1, f2, f3;   
      f1 = 0.1f;
      f2 = 100.1f;
      f3 = f1 + f2;    //按道理应该是100.2

f3  得不到正确的值。看watch窗口等于  0.099999999.。。。。   这么简单的算式,居然都不行。。。 试了好几个工程都这样。莫名其妙。。。




实验了下 用float是正确的  用double就不行。。。 莫名其妙。

然后实验exp() 老是得不到正确的结果。。。  莫名其妙


把arm_cortexm7lfdp_math.lib加入了工程。
result = exp(2) 的值应该是  0.693147  
这里如果result为double,那么得出来的是3.105036184601e+231。     
如果result为float, 得出0.


搞了一晚上,要发疯了。
求助各位。










友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。