主题:哪位高手帮忙修改一段MSCOMM进行串口的程序!!!
哪位高手帮忙修改一下这段程序:
运行可以进行串口通信,可是接收的数据怎么都是错误的啊?
procedure Tmainfrm.MSComm1Comm(Sender: TObject);
var S_tshang:variant;
i:integer;
begin
if MSComm1.CommEvent= comEvReceive then
begin
S_tshang:=vararraycreate([0,20],varbyte);
S_tshang:=mscomm1.input;
for i:=0 to 20 do
begin
sleep(2);
memo1.Text:=memo1.Text+inttostr(s_tshang[i]) +' ';
end;
end;
end;
procedure Tmainfrm.BitBtn3Click(Sender: TObject);
var S_tcanshu:variant;
begin
if mscomm1.PortOpen=true then
mscomm1.PortOpen:=false;
mscomm1.CommPort:=strtoint(combobox1.Text);
mscomm1.Settings:='19200,m,8,1';
mscomm1.PortOpen:=true;
S_tcanshu:=vararraycreate([0,0],varbyte);
S_tcanshu[0]:=$+strtoint(edit1.Text);
mscomm1.output:=S_tcanshu;
mscomm1.PortOpen:=false;
mscomm1.Settings:='19200,s,8,1';
mscomm1.PortOpen:=true;
S_tcanshu:=vararraycreate([0,7],varbyte);
S_tcanshu[0]:=$AA;
S_tcanshu[1]:=$AA;
S_tcanshu[2]:=$84;
S_tcanshu[3]:=$+strtoint(copy(edit2.Text,10,2));
S_tcanshu[4]:=$+strtoint(copy(edit2.Text,13,2));
S_tcanshu[5]:=$+strtoint(copy(edit2.Text,16,2));
S_tcanshu[6]:=$+strtoint(copy(edit2.Text,19,2));
S_tcanshu[7]:=$+strtoint(copy(edit2.Text,22,2));
try
mscomm1.output:=S_tcanshu;
except
end;
end;
运行可以进行串口通信,可是接收的数据怎么都是错误的啊?
procedure Tmainfrm.MSComm1Comm(Sender: TObject);
var S_tshang:variant;
i:integer;
begin
if MSComm1.CommEvent= comEvReceive then
begin
S_tshang:=vararraycreate([0,20],varbyte);
S_tshang:=mscomm1.input;
for i:=0 to 20 do
begin
sleep(2);
memo1.Text:=memo1.Text+inttostr(s_tshang[i]) +' ';
end;
end;
end;
procedure Tmainfrm.BitBtn3Click(Sender: TObject);
var S_tcanshu:variant;
begin
if mscomm1.PortOpen=true then
mscomm1.PortOpen:=false;
mscomm1.CommPort:=strtoint(combobox1.Text);
mscomm1.Settings:='19200,m,8,1';
mscomm1.PortOpen:=true;
S_tcanshu:=vararraycreate([0,0],varbyte);
S_tcanshu[0]:=$+strtoint(edit1.Text);
mscomm1.output:=S_tcanshu;
mscomm1.PortOpen:=false;
mscomm1.Settings:='19200,s,8,1';
mscomm1.PortOpen:=true;
S_tcanshu:=vararraycreate([0,7],varbyte);
S_tcanshu[0]:=$AA;
S_tcanshu[1]:=$AA;
S_tcanshu[2]:=$84;
S_tcanshu[3]:=$+strtoint(copy(edit2.Text,10,2));
S_tcanshu[4]:=$+strtoint(copy(edit2.Text,13,2));
S_tcanshu[5]:=$+strtoint(copy(edit2.Text,16,2));
S_tcanshu[6]:=$+strtoint(copy(edit2.Text,19,2));
S_tcanshu[7]:=$+strtoint(copy(edit2.Text,22,2));
try
mscomm1.output:=S_tcanshu;
except
end;
end;