STM8支持浮点数除法运算吗?

2019-07-14 16:47发布

我现在用STVD写了个程序。是AD采集的。其中有一行:temp=temp/128;其中temp是float 型。而且值一般在128*2^9~128*2^10之间。现在调试时,出现的问题时,AD值乱跳而且很大。我在线调试发现,程序执行到上面一行后temp值就等于0了!!明明temp执行前是个3开头的8位数啊?!,我试了好几次还是一样结果。不管temp多少执行后直接等于0!!我怎么也想不明白了,难道STM8不支持浮点数除法?如果那样我该怎么做除法啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
十个名字V
1楼-- · 2019-07-14 22:48
可以把Temp先放大一定的倍数在进行运算
ROSE1017
2楼-- · 2019-07-15 04:46
STM8不支持浮点数。
但你的编译工具有可能支持。
DengQilong
3楼-- · 2019-07-15 05:03
 精彩回答 2  元偷偷看……
wuli北
4楼-- · 2019-07-15 10:31
我也想过但有两个原因:其一,temp本身就很大,最多只能放大100倍,否则可能超范围溢出。其二,我这个temp值本身要求精度比较高,后面要用它算出通道系数。小数点后面可能不止2位即使扩大100倍还是有小数啊?,而且后面还有一系列的地方要用浮点数除法了。不过还是很感谢你!
wuli北
5楼-- · 2019-07-15 13:47
我刚试了下temp=temp/128.0;  试了几次感觉不稳定,有几次可以,可过一会儿又会出错,我跟踪发现,到这句后又出问题了。不知大师说的浮点数的库是哪个,我全部用寄存器在编程。所以对库不是很熟悉
zym123456
6楼-- · 2019-07-15 18:46
将128改为128.0f试试,或者在128前面加(float)试试看

一周热门 更多>