关于字节型数据转为浮点型数据的问题

情景:RTU抄流量计

 

RTU发送Modbus命令:41 03 00 02 00 08 EB 0C

水表回应:41 03 10 43 CF 16 25 00 D6 59 A7 00 D6 59 C1 FF FF FF E7 57 29

 

其中从第4-7字节为float型数据,43 CF 16 25,解析值应该为414.173,

单片机程序:

       float ss_value;
       ulong temp_ss_value;

        temp_ss_value = buf[3] << 24;    
        temp_ss_value += buf[4] << 16;    
        temp_ss_value += buf[5] << 8;    
        temp_ss_value += buf[6];        
    
        memcpy(&ss_value,&temp_ss_value,sizeof(temp_ss_value));

        caoxi[meter_caoxi_index].ss_flux = ss_value; 

 

写成以下写法则不能准换成功:

 

       float ss_value;
    
        memcpy(&ss_value,&buf[3],4);

        caoxi[meter_caoxi_index].ss_flux = ss_value; 

目前尚未搞明白,望看到的高手指点以下。

你可能感兴趣的:(关于字节型数据转为浮点型数据的问题)