M
maxim88
Unregistered / Unconfirmed
GUEST, unregistred user!
两个事件处理过程就可以了
先是一个按钮事件,就是发送一个读vb2vb3的命令
然后是一个接收事件,根据读到的值计算要写入的值,然后发送写入的数据
从PC机串口来讲就是发送-》接收-》发送
//按钮事件,按下按钮发送读取命令
procedure TForm1.BitBtn1Click(Sender: TObject);
var s:string;
begin
s:=‘给我读vb2vb3’;
Comm1.WriteCommData(PAnsiChar(s),Length(s));
end;
//接收事件,已收到下位机数据帧
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var rxbuf:array of byte;
begin
setlength(rxbuf,bufferlength);
move(buffer^,rxbuf[0],bufferlength); //接收数据装入数组
rxbuf[1]:=1; //新的vb3设置值,rxbuf[0]为vb2的原值
//此处可修改数组生成新的写命令
Comm1.WriteCommData(@rxbuf[0],bufferlength); //发送
END;
先是一个按钮事件,就是发送一个读vb2vb3的命令
然后是一个接收事件,根据读到的值计算要写入的值,然后发送写入的数据
从PC机串口来讲就是发送-》接收-》发送
//按钮事件,按下按钮发送读取命令
procedure TForm1.BitBtn1Click(Sender: TObject);
var s:string;
begin
s:=‘给我读vb2vb3’;
Comm1.WriteCommData(PAnsiChar(s),Length(s));
end;
//接收事件,已收到下位机数据帧
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var rxbuf:array of byte;
begin
setlength(rxbuf,bufferlength);
move(buffer^,rxbuf[0],bufferlength); //接收数据装入数组
rxbuf[1]:=1; //新的vb3设置值,rxbuf[0]为vb2的原值
//此处可修改数组生成新的写命令
Comm1.WriteCommData(@rxbuf[0],bufferlength); //发送
END;