M
missqiao
Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个门禁软件,遇到了个问题:
我用COMPORT控件向单片机发送18个类型为byte的数据,
要发送的数据为 FA FA FF 1 17 0000000000 FB FB 1
FA FA FF 三个固定头码;1 锁地址;17 锁命令;0000000000要传输的数据;FB FB 固定尾码;1 和校验
向串口我发过去了数据,锁一点响应都没有,(成功的话应该响一声的,我确认我发送的数据 是对的)
我的同事告诉我要以二进制传输方式来传输,
那么COMPORT的默认传输方式是什么?我该如何解决?
(用VB编的门禁软件,控件MSCOMM能顺利打开锁)
我的源程序如下:
procedure Topenlockform.Button1Click(Sender: TObject);
var
bv:Array[0..18] of Byte;
i,j:byte;
checksum:byte;
s:string;
begin
bv[0]:=250;//FA byte($FA);
bv[1]:=250;//FA
bv[2]:=255;//FF
bv[3]:=1;//01
bv[4]:=23;//17
// bv[5]:=255;//FF
for i:=5 to 14 do
begin
bv:=0;
end;
bv[15]:=251; //FB
bv[16]:=251;
checksum:=0;
For i:=0 To 16 do
begin
checksum:=checksum + bv;
end;
bv[17]:=checksum;//因为checksum是byte,进位都丢了,无需取右两位 '校验位
comportform.ComPort1.Write(bv,18);
s:='';
for j:=0 to 17 do
s:=s+format('%x',[bv[j]]);
showmessage(s); //显示我传输的数据以16进制显示
end;
哪位DFW能帮帮我啊,我都要急死了……分不够可以再加
难道没有人可以帮我吗?18个BYTE类型的数据,怎么以二进制方式传输??????
我用COMPORT控件向单片机发送18个类型为byte的数据,
要发送的数据为 FA FA FF 1 17 0000000000 FB FB 1
FA FA FF 三个固定头码;1 锁地址;17 锁命令;0000000000要传输的数据;FB FB 固定尾码;1 和校验
向串口我发过去了数据,锁一点响应都没有,(成功的话应该响一声的,我确认我发送的数据 是对的)
我的同事告诉我要以二进制传输方式来传输,
那么COMPORT的默认传输方式是什么?我该如何解决?
(用VB编的门禁软件,控件MSCOMM能顺利打开锁)
我的源程序如下:
procedure Topenlockform.Button1Click(Sender: TObject);
var
bv:Array[0..18] of Byte;
i,j:byte;
checksum:byte;
s:string;
begin
bv[0]:=250;//FA byte($FA);
bv[1]:=250;//FA
bv[2]:=255;//FF
bv[3]:=1;//01
bv[4]:=23;//17
// bv[5]:=255;//FF
for i:=5 to 14 do
begin
bv:=0;
end;
bv[15]:=251; //FB
bv[16]:=251;
checksum:=0;
For i:=0 To 16 do
begin
checksum:=checksum + bv;
end;
bv[17]:=checksum;//因为checksum是byte,进位都丢了,无需取右两位 '校验位
comportform.ComPort1.Write(bv,18);
s:='';
for j:=0 to 17 do
s:=s+format('%x',[bv[j]]);
showmessage(s); //显示我传输的数据以16进制显示
end;
哪位DFW能帮帮我啊,我都要急死了……分不够可以再加
难道没有人可以帮我吗?18个BYTE类型的数据,怎么以二进制方式传输??????