在接收过程中,总是把一个完整的数据帧分成两段,如:本来要接收的一个完整返回帧是68 12 34 78 56 00 01 68 81 05 00 00 17 80 05 00 07 16 ,但是现在都是68接收一次,然后再重新触发接收剩下的内容。这样的话我很难把它们解析出来。而且,在我连续发送2个帧(中间sleep(1000)),它也是等发送完后才开始接收的。这样很容易造成数据干扰
我这个控件怎么也没有onchar事件
,只有Trigger,TriggerAvail,TriggerData,Triggertimer等等以Trigger开头的这些。
procedure TMainForm.ComPort1Trigger(CP: TObject; Msg, TriggerHandle,
Data: Word);
var
I : Word;
C : Char;
s: String;
t:integer;
begin
sleep(100);
s:='';
for I:= 1 to Data do
begin
C := ComPort1.GetChar;
s:=s+inttohex(byte(c),2)+' ';
inc(JSdate);
end;
Diff(s); //显示子程序
end;
我这个控件怎么也没有onchar事件
,只有Trigger,TriggerAvail,TriggerData,Triggertimer等等以Trigger开头的这些。
procedure TMainForm.ComPort1Trigger(CP: TObject; Msg, TriggerHandle,
Data: Word);
var
I : Word;
C : Char;
s: String;
t:integer;
begin
sleep(100);
s:='';
for I:= 1 to Data do
begin
C := ComPort1.GetChar;
s:=s+inttohex(byte(c),2)+' ';
inc(JSdate);
end;
Diff(s); //显示子程序
end;
具体要怎样做啊,我都要疯了
sleep(100);
s:='';
for I:= 1 to Data do
不然就一个字节一个字节收吧。
还是换吧,建议用CPORT,没有这纠结的问题