STM32F4浮动到 int 转换
STM32F4 float to int conversion
在STM32F4 MCU上,我需要将浮点数转换为整数。
我有 arm_pid_f32() 函数的 FP 数字,但稍后我需要更新接受 12 位整数的内部 DAC 值。
我知道我会失去一些"精度",但如果我不转换它并让它直接传递到 DAC 更新功能中,我会得到一些奇怪的行为,这让我出现问题。
最好的方法是什么?
我正在使用KEIL MDK-ARM IDE + CMSIS DSP库。
顺便说一句:MCU用于PID控制回路,我有12位A/D,PID算法,我的系数和DAC作为输出设备。DAC目前用于调试目的,稍后将bi替换为PWM模块,PWM模块也需要整数。
我假设你有一个接受二进制补码整数输入的DAC。
将浮点变量除以浮点变量可以具有的最大值。这为您提供了 [-1.0...+1.0] 范围内的浮点数
乘以从DAC产生正满量程输出的整数值,并假设为2047年。如果需要,请舍入,然后转换为整数。
如果 DAC 需要无符号正整数输入值,则需要在此结果中添加 2048。
相关文章:
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 将字符串中的 int 转换为字母;
- 主.cpp:18:20:错误:从"int*"转换为"int"会失去精度 [-fa
- 将非常大的 int 转换为双倍,在某些计算机上会损失精度
- 如何将矢量<int>转换为字符数组?
- C++ 无法从 const int* 转换为 const_iterator
- 我不断收到错误 C2440'=':无法从"int *(__cdecl *)(int *,int *,int,int)"转换为"int *
- 如何将 int[4] 转换为 std::array<int,4>?
- 如何将data[i].int转换为vaible
- 将 int 转换为字符串,然后连接另一个变量以创建完整扩展名,然后将其转换为 const_char*
- 将私有矩阵形式 int 转换为双 C++
- 无法将参数 1 从 'int' 转换为 'int &'
- 将 int 转换为字符串后始终得到 0
- isspace 函数的性能警告,从 int 转换为布尔值
- 将大 int 转换为浮点数,而不舍入 c++
- 错误:无法将'uint8* {aka unsigned int*}'转换为"常量emxArray_uint8_T*"?
- 将未签名的INT转换为BCD
- 在 C++ 中将 int 转换为双精度