D
dxm
Unregistered / Unconfirmed
GUEST, unregistred user!
通信速率:9600bps,8个数据位,1个起始位,1个停止位,无校验。
两个字符间最大间隔不大于500ms。包回应超时不大于30s。
发送数据格式: STX (0x02) TXT ETX(0x03)
其中:txt为:
SEQ TAG LEN DATA LRC
SEQ :包顺序号,长度为1字节,循环累加,包序列号相同表示重发。
TAG :长度,1字节,标记码,用于定义DATA类型。
LEN :长度,2字节,DATA的长度,高字节在前。
DATA:传输的数据。
LRC :2字节,为SEQ、TAG、LEN、DATA的校验码,计算公式如下:
设有N字节数据,记为{xi},i=1,2…N。
令Q0=0,S0=0
Qi=Qi-1+xi mod 216
Si=Si-1+Qi mod 216
SN即为2字节校验码。
TXT结构中的所有数据均采用ASCII码传输。
STX SEQ TAG LEN DATA LRC ETX
02 30 30 33 31 30 30 30 30 没有 30 30 39 33 03
请问该怎样发送数据?
我程序是这样编写的:
procedure TForm1.Button5Click(Sender: TObject);
var
dat:array [1..14] of byte;
// sum:T2array2;
i:integer;
flag:boolean;
sen:boolean;
begin
dat[1]:=byte($02);
dat[2]:=byte($30);
dat[3]:=byte($30);
dat[4]:=byte($33);
dat[5]:=byte($31);
for i:=6 to 11 do
dat:=byte($30);
dat[12]:=byte($39);
dat[13]:=byte($33);
dat[14]:=byte($03);
comm1.StartComm;
flag:=true;
FOR i:=1 to 14 do
begin
sen:=comm1.WriteCommData(@dat,1);
if sen=true then continue
else break;
end;
end;
跟串口连接的硬件却什么数据也接收不到,而在别的程序上是接收得到数据的。还有怎样接收从
串口发送过来的数据。
如果谁能使我通过程序测试,马上给分。
两个字符间最大间隔不大于500ms。包回应超时不大于30s。
发送数据格式: STX (0x02) TXT ETX(0x03)
其中:txt为:
SEQ TAG LEN DATA LRC
SEQ :包顺序号,长度为1字节,循环累加,包序列号相同表示重发。
TAG :长度,1字节,标记码,用于定义DATA类型。
LEN :长度,2字节,DATA的长度,高字节在前。
DATA:传输的数据。
LRC :2字节,为SEQ、TAG、LEN、DATA的校验码,计算公式如下:
设有N字节数据,记为{xi},i=1,2…N。
令Q0=0,S0=0
Qi=Qi-1+xi mod 216
Si=Si-1+Qi mod 216
SN即为2字节校验码。
TXT结构中的所有数据均采用ASCII码传输。
STX SEQ TAG LEN DATA LRC ETX
02 30 30 33 31 30 30 30 30 没有 30 30 39 33 03
请问该怎样发送数据?
我程序是这样编写的:
procedure TForm1.Button5Click(Sender: TObject);
var
dat:array [1..14] of byte;
// sum:T2array2;
i:integer;
flag:boolean;
sen:boolean;
begin
dat[1]:=byte($02);
dat[2]:=byte($30);
dat[3]:=byte($30);
dat[4]:=byte($33);
dat[5]:=byte($31);
for i:=6 to 11 do
dat:=byte($30);
dat[12]:=byte($39);
dat[13]:=byte($33);
dat[14]:=byte($03);
comm1.StartComm;
flag:=true;
FOR i:=1 to 14 do
begin
sen:=comm1.WriteCommData(@dat,1);
if sen=true then continue
else break;
end;
end;
跟串口连接的硬件却什么数据也接收不到,而在别的程序上是接收得到数据的。还有怎样接收从
串口发送过来的数据。
如果谁能使我通过程序测试,马上给分。