无法在STM32上运行简单除法

标签 c stm32

我正在尝试在项目中设置一个简单的划分,在 STM32F10x 上我做了什么:

假设我有一个浮点变量:

float f =0.0; 

.............

当我这样使用f时:

f = 20/5 ;

程序无法使用除法结果f的值,我在程序中的多个其他函数中使用该值,但它们都不起作用,这意味着我'没有出现错误,但程序无法运行。 但是当设置值时:

f = 4 ; 

一切正常!
知道为什么吗? 我用过: f =( float )20/5;

最佳答案

编译器将所有没有后缀的 float 视为double

这会在 STM32/ARM 上爆炸。

使用后缀,iow 20.0f

你的转换起作用的原因是因为结果可以在编译时确定。如果没有的话,它会再次爆炸。

关于无法在STM32上运行简单除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31136518/

相关文章:

c - int 到 String 来连接?

c - STM32 Usart1与TIM1不能同时工作

embedded - stm32删除闪存即使没有写入?

c++ - C/C++字符串内存分配

c - 我怎样才能让这个程序的距离部分工作?

c - strcmp 对于 2 个确切的文件不返回 0

c++ - STM32 ADC 值读数太高

c - DMA 传输比 CPU 传输花费更多时间

c - scanf 不输入空格作为字符

c - 在二维数组/矩阵中查找由 1 组成的正方形