急!!!(在线等待)有关串口通讯的问题(50分)

  • 主题发起人 主题发起人 guxingren
  • 开始时间 开始时间
G

guxingren

Unregistered / Unconfirmed
GUEST, unregistred user!
以下是我写的一段程序运行之后出现了:发送错误的提示.望大侠们指教错在哪里,应如何改正!!
procedure TForm1.senddataClick(Sender: TObject);
var
str:pchar;
count:integer;
begin
str:=pchar(memo1.Text);
count:=length(str);
if comm1.WriteCommData (str,count) then
Memo1.Lines.Add('已发送'+inttostr(count)+'个字节')
else
raise exception.create('发送错误');
end;
 
你调用Comm1.StartComm了吗
看你用WriteCommData我估计是用SPComm吧?
 
语法有问题吧
 
var sbuf:array[0..99]of byte;

comm1.writeCommData(@sbuf[0],length(sbuf));

我知道的和用的就这么多。。。[:D]
 
procedure TMain_frm.L_SendClick(Sender: TObject);
begin

Comm.WriteCommData(Memo_Text.Lines.GetText,length(Memo_Text.Text));
end;

procedure TMain_frm.CommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
type
IArr = ^integer;
var
RevP : array [1..2048] of Byte;
i: Integer;
CommRevStr : ShortString;
Msg :String;
begin
SetLength(CommRevStr,BufferLength);
Move(IArr(Buffer)^,RevP,BufferLength);
for i:=1 to BufferLength do
begin
CommrevStr := Char(RevP);
end;
Memo_Text.Lines.Add(CommRevStr);

if Pos('CONNECT',CommRevStr)<>0 then
Begin
Comm.WriteCommData(PChar(Msg),Length(Msg));
End;
end;

// 给分 50
 
if comm1.WriteCommData (str,count) then
这句肯定错了,改为:
if comm1.WriteCommData(Pchar(str),count) then
另,一定要确保已经打开串口.
 
cjh_xf我已经把str定义成pchar了这样就不用再在那儿重复了!对吧!
 
qsilence我使用SPCOMM
 
接受答案了.
 
后退
顶部