[STM32F1] 这句话的逻辑和优先级有错吗

[复制链接]
1245|7
 楼主| 电子过客 发表于 2016-7-29 11:02 | 显示全部楼层 |阅读模式
if(( Warning_Collect_temper/10 <= Warning_High_temper-Warning_Htemper_Hys)&&( Warning_Htemper_run==1))
Warning_Collect_temper/10的结果是24.2  
Warning_High_temper-Warning_Htemper_Hys的结果是 24
这个条件应该不成了 进入不了循环 可是 仿真时候进入循环了

               

玄德 发表于 2016-7-29 11:05 | 显示全部楼层

可能是优先级问题。
多加几个括号试试。


 楼主| 电子过客 发表于 2016-7-29 11:14 | 显示全部楼层
玄德 发表于 2016-7-29 11:05
可能是优先级问题。
多加几个括号试试。

if(( Warning_Collect_temper/10 <= (Warning_High_temper-Warning_Htemper_Hys))&&( Warning_Htemper_run==1))       
这样也不可以
玄德 发表于 2016-7-29 11:17 | 显示全部楼层

继续加括号。


 楼主| 电子过客 发表于 2016-7-29 11:25 | 显示全部楼层

if(((  Warning_Collect_temper/10 )<= (Warning_High_temper-Warning_Htemper_Hys))&&( Warning_Htemper_run==1))       
没法再加了
玄德 发表于 2016-7-29 11:27 | 显示全部楼层
电子过客 发表于 2016-7-29 11:25
if(((  Warning_Collect_temper/10 )


把长算式分解开,看看每一步的结果。


 楼主| 电子过客 发表于 2016-7-29 12:34 | 显示全部楼层
玄德 发表于 2016-7-29 11:27
把长算式分解开,看看每一步的结果。

Warning_Collect_temper  定义浮点型就可以了
mmuuss586 发表于 2016-7-29 20:08 | 显示全部楼层
改成10.0看下;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

210

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部