我用rs485通信时需要接收两个16位的寄存器的数据,然后把这两个16bits的数据组合成一个float型数据。
两个寄存器要传输的值为 3.14 按照modbus RTU 的float 方式发送,则会发送0xc 此时寄存器的存储方式为:高字节在后,低字节在前低字在前,高字在后
则寄存器1的值为:f5c3
寄存器2的值为4048
此时,这些为十六进制数要转化为浮点数可以將整形输出成浮点型,需要两步
首先把 a、b、c、d 四个数转化为它的真实数值,存储在unsigned int 型的 e 中然后是第二步,把e的地址解释成float型的地址,传递给f
里面的 lp 指针,只是用于打印出 *f 的数据而已按低字节打印。