如何将4个modbus寄存器(每个16位)转换为C中的双浮点



我使用libmodbus,并且有一个16位整数的数组,保存我的modbus寄存器。我尝试使用MODBUS_GET_INT64_FROM_INT16(mod_arr,0(,但值(当然(是一个整数。在MAKRO不工作之前使用(double(。

modbus_get_float_dcba(mod_arr(只读取2个寄存器,而不是4个寄存器。

是否有一个函数/宏用于将4个modbus寄存器读取为双(64位(?

当然。:-(我的解决方案是:

temp[0]=modbus[3];

temp[1]=modbus[2];

temp[2]=modbus[1];

temp[3]=modbus[0];

memcpy(&mb_double,&temp,8(;