关于STM32的浮点除法运算偶尔出错
本帖最后由 ewindiy 于 2016-2-1 14:47 编辑最近做了个以太网步进电机控制器,一切都那么顺利的时候,测试中发现一个让我十分苦恼的问题
做除法的时候大部分结果是对的,偶尔出现结果为0,虽然使用整数除法越过这个问题,但是始终不明白怎么回事如图,查询中有个别结果有问题,就做了个除法,结果让我不解
单从这里看不出什么,建议用DEBUG单步,检查数组里的值和输出值对应关系
netlhx 发表于 2016-2-1 17:50
单从这里看不出什么,建议用DEBUG单步,检查数组里的值和输出值对应关系
估计楼主也就偶尔出现这样的情况,单步可能一天都碰不上…… 把相关的几个数据都输出一下。 本帖最后由 _风中的少年 于 2017-7-30 10:12 编辑
同出现除法错误!
dc_double=(double)adcSum/10000.0;
我这里dc_double 是双精度的,adcSum是uint32_t类型的,值大概为2000000.结果算出来用串口调试得到dc_double为0
找到原因了,adcSum不知道怎么被置0了。。。好迷啊。。
估计楼主的问题也应该是程序其他地方不对吧?
_风中的少年 发表于 2017-7-30 09:56
同出现除法错误!
dc_double=(double)adcSum/10000.0;
我这里dc_double 是双精度 ...
应该不是,我把这个分解成整形换算就好了
页:
[1]