在STM32F4单片机上,我需要将浮点数转换为整数。
我有FP数字作为arm_pid_f32()函数的结果,但是稍后我需要更新内部DAC值,它接受12位整数。
我知道我会失去一些“精度”,但如果我不转换它,让它直接传递到DAC更新函数,我得到了一些奇怪的行为,这使我的问题。
做到这一点的最佳方法是什么?
我使用的是KEIL MDK-ARM IDE + CMSIS DSP库。
顺便说一下:在PID控制回路中使用了MCU,我有12位A/D,PID算法和我的系数和DAC作为输出器件。DAC目前用于调试目的,以后将替换为同样需要整数的PWM模块。
发布于 2014-01-14 20:05:28
我假设你有一个接受二进制补码整数输入的DAC。
将浮点变量除以浮点变量可以具有的最大可能值。这给出了一个在-1.0...+1.0范围内的浮点数
乘以从DAC产生正满量程输出的整数值,并声明假设为2047。如果需要,则四舍五入,然后强制转换为整数。
如果DAC需要无符号正整数输入值,则需要在此结果中加上2048。
https://stackoverflow.com/questions/21109243
复制相似问题