串口接收到浮点数如何解析

2019-07-14 20:16发布

最近在做单片机和PLC以modbus方式通信的事情,需要发送浮点数,发现对串口接收数据后怎样处理还有点不明白。比如主机发送一个浮点数(float),占四字节的内存,主机按照顺序将这四个字节连续发出,然后从机接收到这四个字节后,是需要自己写程序来将这四个字节转换为对应的十进制浮点数吗?要不然从机该怎样做?谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
he07413
2019-07-15 22:20
布莱恩 发表于 2016-10-24 11:49
那怎么校验呢,MODBUS需要进行CRC检验,需要将帧数据每次取出8位进行运算,如果不先将浮点数转换为二进制或者十六进制,那该怎么校验呢?

ModBus 发送的时候最后两个字节是CRC校检,ModBus发送一个浮点数的时候,也是直接拆分成无符号char类型,然后根据大小端换一下顺序吧,确定好发送数据的顺序之后进行CRC校检,把校检结果放在一帧的结尾。接收到之后直接对数据进行CRC校检,然后还原浮点数。

一周热门 更多>