你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32 l4 浮点运算出错

[复制链接]
nigel1983 提问时间:2020-7-30 16:45 /
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
收藏 评论5 发布时间:2020-7-30 16:45

举报

5个回答
废鱼 回答时间:2020-7-30 17:16:49
应该是写法的问题,如果加个中间处理是不是可以解决这个问题?
float a;
a=f0+f1;
return a;

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

lebment 回答时间:2020-7-30 17:18:57
史诗级错误,没见过
nigel1983 回答时间:2020-7-31 06:44:17
又测试了一下,分别用两块板子 ,STM32L476G-DISCOVERY  和 STM32 NUCLEO-L-496ZG.
496这块依旧出错,但476这块居然特么正常,这是什么鬼?
laidaihua 回答时间:2020-8-3 02:29:06
看来是你没贴出来的那一部分程序有问题。
butterflyspring 回答时间:2020-8-13 12:18:57
项目配置时的优化等级是否有影响?

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版