2014-01-14 652 views
0

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

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

我知道我会失去一些“精度”,但如果我不转换它,并让它直接进入DAC更新函数,我得到了一些奇怪的行为,这使我的问题。

什么是最好的方法来做到这一点?

我正在使用KEIL MDK-ARM IDE + CMSIS DSP库。这个MCU用于PID控制回路,我有12位A/D,PID算法和我的系数,DAC作为输出设备。 DAC目前用于调试目的,后来将bi替换为也需要整数的PWM模块。

回答

0

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

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

乘以整数值,从DAC产生一个正的满量程输出,并假设将是2047.如果你想要的话,然后转换为整数。

如果DAC需要一个无符号的正整数输入值,则需要将2048添加到该结果中。