不能运行 STM32上的简单除法
can't run a simple division on STM32
我试图在一个项目中设置一个简单的划分,在 STM32F10x 上,这是我所做的:
假设我有一个浮点变量:
float f =0.0;
.............
当我这样使用 f
时:
f = 20/5 ;
程序无法使用作为除法结果的 f
的值,我在程序的多个其他函数中使用了这个值,但其中 none 有效这意味着我不会收到错误,但程序无法运行。
但是当设置值时:
f = 4 ;
一切正常!
知道为什么吗?
我用过:
f = (浮动) 20/5 ;
编译器将所有没有后缀的浮点数视为double
。
这将在 STM32/ARM 爆炸。
使用后缀,iow 20.0f
。
你的转换之所以有效,是因为结果可以在编译时确定。不然又要炸了
我试图在一个项目中设置一个简单的划分,在 STM32F10x 上,这是我所做的:
假设我有一个浮点变量:
float f =0.0;
.............
当我这样使用 f
时:
f = 20/5 ;
程序无法使用作为除法结果的 f
的值,我在程序的多个其他函数中使用了这个值,但其中 none 有效这意味着我不会收到错误,但程序无法运行。
但是当设置值时:
f = 4 ;
一切正常!
知道为什么吗?
我用过:
f = (浮动) 20/5 ;
编译器将所有没有后缀的浮点数视为double
。
这将在 STM32/ARM 爆炸。
使用后缀,iow 20.0f
。
你的转换之所以有效,是因为结果可以在编译时确定。不然又要炸了