SPCOMM串口通信的小问题 Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiNetwork/html/delphi_20061122104545281.html
SPCOMM以
1200,8,n,1向下位机发送0X10,并接收0X11(成功),若没收到则表示失败
procedure TForm1.Button1Click(Sender: TObject);
begin
try
Comm1.BaudRate:=1200;
Comm1.CommName:=COM1;
Comm1.ByteSize:=8;
Comm1.ParityCheck:=1
Comm1.startcomm;
except
showmessage('打开失败');
end;
Comm1.WriteCommData( ); //这里如何发送16字节的命令?
//如何接收??谢谢
Comm1.StopComm;
end;
http://mm.blogxp.org/Article/295723/
其实这些问题你自己用google或baidu搜索一下随便找个例子就可以搞定的!
google出来没有发送16位数字的例子。
能否直接写
Comm1.WriteCommData('16',1);
procedure TForm1.Button1Click(Sender: TObject);
var
sendbuff:array of byte;
sendlen:integer;
begin
try
Comm1.BaudRate:=1200;
Comm1.CommName:=COM1;
Comm1.ByteSize:=8;
Comm1.ParityCheck:=1
Comm1.startcomm;
except
showmessage('打开失败');
end;
sendlen:=1;
setlength(sendbuff,1);
sendbuff[0]:=16;
Comm1.WriteCommData(sendbuff,1); //这里如何发送16字节的命令?
sleep(100);
//如何接收??谢谢
你在ONRECEVICEDATA()中写代码吧........
Comm1.StopComm;
end;
接收时我一般声明一个数组,然后用move函数复制过去,在做相应处理
接收与发送要分开,
接收
ONRECEVICEDATA()
var
p:pArrayByte;
begin
p:=buffer;
if p[0]=$11 then
showmessage('OK');
end;