大家看看这个串口发送代码为何没有反应? ( 积分: 30 )

  • 主题发起人 主题发起人 L.Ming
  • 开始时间 开始时间
L

L.Ming

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TDM.DataSend(const Str: String;Types: byte)
{发送数据}
var
i: integer;
rbuf:array of byte;
commflg:boolean;
begin
case Types of
0: Comm.WriteCommData(PChar(DM.DictateTable.FieldByName('code').AsString),Length(DM.DictateTable.FieldByName('code').AsString))
//字符串发送
1: with TStringList.Create do //比特数组发送
try
Delimiter := ' ';
DelimitedText := TRIM(Str);
SetLength(rbuf,Count);
for i := 0 to Count - 1 do
begin
rbuf:= byte(strtoint('$'+ Strings));
Comm.WriteCommData(@rbuf,1);
//Comport1.Write(rbuf,1);
sleep(20);
end;
finally
Free
end;
end;
end;

procedure TfrmProjectives.RzBitBtn5Click(Sender: TObject);
begin
DM.Comm.CommName := 'COM6';
DM.Comm.BaudRate := 9600;
DM.Comm.ByteSize := _8;
DM.Comm.StartComm;
DM.DataSend(trim(eDIT1.Text),1);

end;
 
哪一段没有反应?还是全都没有反应?
你用的是“Com6”?
 
是的,第二段调用第一段。全都没有反应
 
你指的是什么反映?弄个串口监控看看
 
串口是通的,我用其他软件测试是可以的,就是我的代码不行,同样的参数
 
你的 Types 是什么东西,没有指定啊。
 
Types: byte
 
原因找到了,是延时的关系。串口打开后,要作10-20毫秒的延时就OK了。但是现在我改了代码。
 
帮你顶,接个分
 
多人接受答案了。
 
后退
顶部