如题,具体型号:R5F10DLEJFB
代码和仿真时数据如图,包括下面的汇编指令:
Idiag = adValue;
如此简单的一条赋值指令出现这么奇怪的错误,真的是出乎我的意料。
float Idiag = 0;
值为0x17的adValue 赋值给浮点数变量Idiag之后,竟然变成了超级大的数。
最后浮点数改为4字节无符号整形,就可以了。
uint32_t Idiag = 0;
正确的赋值截图:
那是因为存储的表示方法不同,浮点数不能直接使用整数的方法来读值
贴一个查到的解释
你可以再加一级验证,把Idiag(float)再赋值给其他整形变量,看这个变量数值正常吗