OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2443|回复: 2

STM32L496ZG浮点运算出错,请高手解答!谢谢!

[复制链接]

5

主题

10

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2019-4-13
在线时间
6 小时
发表于 2020-7-30 16:51:36 | 显示全部楼层 |阅读模式
11金钱
float fSum(float f0,float f1)
{
  return f0+f1;
}

void main()
{
    float s;
   s=fSum(0.1f,0.2f);
}

//以上代码同时在main.c中运行正常

如果将fSum函数放到其它c文件,再调用就变成0,中断进入监视发现传参时f0,f1已变成0 ,有点怪

但把函数改为(fSum函数位于其它c文件)
void fSum(float* pf0,float* pf1,float* sum)
{
  (*sum)=(*pf0)+(*pf1);
}

//____________________________________
void main()
{
  float sum=0,f0=0.1,f1=0.2;
  fSum(&f0,&f1,&sum);
}
这样不会出错,double类型的也是这个毛病。好怪,有人遇到过吗?怎么解决?请教!编译器IAR for Arm 8.30.1

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-7-31 01:39:44 | 显示全部楼层
回复

使用道具 举报

5

主题

10

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2019-4-13
在线时间
6 小时
 楼主| 发表于 2020-7-31 06:46:08 | 显示全部楼层
首先谢谢原子哥的提议!
我不信邪,又测试了一下,分别用两块板子 ,STM32L476G-DISCOVERY  和 STM32 NUCLEO-L-496ZG.
496这块依旧出错,但476这块居然特么正常,这是什么鬼?代码完成一样啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 13:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表