串口通讯中怎么往下位机下传浮点数?

Description of your first forum.

串口通讯中怎么往下位机下传浮点数?

帖子xudai » 星期五, 2000年6月16日 15:13


我用的是485通讯,往下位机下传整数已好,可是怎么下传浮点数?
 
 
 

串口通讯中怎么往下位机下传浮点数?

帖子Kang » 星期五, 2000年6月16日 15:17


存到文件里,按字节传
 
 
 

串口通讯中怎么往下位机下传浮点数?

帖子bluebird » 星期五, 2000年6月16日 16:44


传浮点数我已经应用到了实际中,是这样实现的
假设你的数值是f,如线性方程用参数a ,b :
  x *  a/ b = f
公式来转换,其中x为0--255的一个字节的码值,注意用char 和ord转换就可以了
传输的只是一个x,然后再根据x来计算浮点数。
 
 
 

串口通讯中怎么往下位机下传浮点数?

帖子iie » 星期五, 2000年6月16日 17:13


可以这样
move(arealtype, abytearray, sizeof(arealtype));
然后发送字节数组
 
 
 

串口通讯中怎么往下位机下传浮点数?

帖子Victortim » 星期五, 2000年6月16日 17:56


real 8bytes;
这样
var
 R:Real;
 Temp: array[0..7]of Byte absolute R;

通过Temp[]就可以存取R(Real)的8个字节。把Temp的8字节传出去,用同样的方法
放回temp[]中就可以得到R的值。
 
 
 

串口通讯中怎么往下位机下传浮点数?

帖子xudai » 星期六, 2000年6月17日 09:55


to bluebird:
下位机也要用此公式来取得f?a,b的值怎么订的?
to iie:
move是自己写的函数?
to victortim:
能否详细解释一下,我没看懂。
多谢大家。
 
 
 

串口通讯中怎么往下位机下传浮点数?

帖子Victortim » 星期六, 2000年6月17日 13:03


var
 R:Real;
 Temp: array[0..7] of Byte absolute R;

Temp和R的地址重叠,即R和Temp的首地址一样(@temp=@R),
Real占用个字节,用Temp的可以存取R的8个字节的数据。


var
 R,R1:Real;
 Temp: array[0..7] of Byte absolute R;
 Temp1:array[0..7] of byte Absolute R1;
 i:integer;
begin
 R:=100;
 R1:=99;
 for i:=0 to 7 do
   temp1[i]:=temp[i];
 ...
 Label1.Caption:=floattostr(r1);
end;

 你会看到,R1=100;关键是Absolute
 
 
 

串口通讯中怎么往下位机下传浮点数?

帖子netwind » 星期三, 2000年9月20日 21:29


关注此题
 
 
 

串口通讯中怎么往下位机下传浮点数?

帖子wjiachun » 星期五, 2000年10月27日 22:17


多人接受答案了。