STM32F4浮点到int转换

时间:2014-01-14 08:50:40

标签: c++ floating-point-conversion stm32f4discovery

在STM32F4 MCU上,我需要将浮点数转换为整数。

我有arm编号作为arm_pid_f32()函数的结果,但后来我需要更新接受12位整数的内部DAC值。

我知道我会失去一些“精确度”,但如果我不转换它并让它直接进入DAC更新功能,我会遇到一些奇怪的行为,这让我有问题。

这样做的最佳方法是什么?

我正在使用KEIL MDK-ARM IDE + CMSIS DSP库。

BTW:MCU用于PID控制回路,我有12位A / D,PID算法,我的系数和DAC作为输出设备。 DAC目前用于调试目的,后来将替换为PWM模块,也需要整数。

1 个答案:

答案 0 :(得分:0)

我假设您有一个接受二进制补码整数输入的DAC。

将float变量除以float变量可能具有的最大可能值。这会给你一个范围[-1.0 ... + 1.0]

的浮动

乘以从DAC产生正满量程输出的整数值,假定为2047.如果需要则舍入,然后转换为整数。

如果DAC需要无符号正整数输入值,则需要在此结果中添加2048。

相关问题