楼主该补补数电了……
这是典型的32bit浮点数,根本不需要想你发的这么费劲,只需要将读到的寄存器值当做浮点数来处理就好了:
假如你的MCU是大端模式:
unsigned short int regbuff[2];
modbus_read(addr,regbuff,2);//读两个寄存器
float *pf = (float*)buff;//转为浮点数指针
然后在需要用到数据的地方,直接用*pf就可以了,例如:
printf("%f",*pf);
就会输出:
62.85
假如你的系统是小端模式,则需要将浮点数的4个字节点到一下顺序。
|