0

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

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

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

最好的方法是什么?

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

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

4

1 回答 1

0

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

将浮点变量除以浮点变量可以具有的最大可能值。这为您提供了 [-1.0...+1.0] 范围内的浮点数

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

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

于 2014-01-14T12:05:28.203 回答