F
Flyback
Unregistered / Unconfirmed
GUEST, unregistred user!
作了个程序,是用MSCOMM与单片机通讯用的。
这段程序已经实现了通讯。但问题是单片机传来的二进制数如何转换为整数进而在
文本框里显示出来呢?请大侠们指教。
procedure TForm1.Timer1Timer(Sender: TObject);
Var RecDate:OLEVariant;
Var ReceiveDate: array[0..3] of Byte;
begin
try
Mscomm1.Output :='S'; //启动握手信号
MSComm1.InputLen := 0;
repeat //开始接受数据
Application.ProcessMessages;
until (Mscomm1.InBufferCount >=4);
RecDate:=Mscomm1.Input;
Edit3.text:=RecDate; //可以看到单片机传来的原始数据了
//下面如何转换为整数呢,请看一下下面的程序问题在那?
Move(RecDate,ReceiveDate,Sizeof(RecDate));
Edit1.text:=InttoStr(ReceiveDate[0]div 2);
Edit2.text:=InttoStr(ReceiveDate[1]); //这种方法错在哪里啊????
Mscomm1.Output:='H'; //发信号让单片机复位
except
Close;
end;
end;
这段程序已经实现了通讯。但问题是单片机传来的二进制数如何转换为整数进而在
文本框里显示出来呢?请大侠们指教。
procedure TForm1.Timer1Timer(Sender: TObject);
Var RecDate:OLEVariant;
Var ReceiveDate: array[0..3] of Byte;
begin
try
Mscomm1.Output :='S'; //启动握手信号
MSComm1.InputLen := 0;
repeat //开始接受数据
Application.ProcessMessages;
until (Mscomm1.InBufferCount >=4);
RecDate:=Mscomm1.Input;
Edit3.text:=RecDate; //可以看到单片机传来的原始数据了
//下面如何转换为整数呢,请看一下下面的程序问题在那?
Move(RecDate,ReceiveDate,Sizeof(RecDate));
Edit1.text:=InttoStr(ReceiveDate[0]div 2);
Edit2.text:=InttoStr(ReceiveDate[1]); //这种方法错在哪里啊????
Mscomm1.Output:='H'; //发信号让单片机复位
except
Close;
end;
end;