串口通信问题!(50)

  • 主题发起人 主题发起人 鸟人和天使
  • 开始时间 开始时间

鸟人和天使

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
procedure TForm1.Button1Click(Sender: TObject);varstr:string;begin str:='aaaaaaa'; mint:=0; CommPortDriver1.SendString(str); Sleep(100); Edit1.Text:=IntToStr(mint);//我需要的是第一次按下click先进入数据接收函数,再运行到这end;procedure TForm1.FormCreate(Sender: TObject);begin  CommPortDriver1.Connect;//打开串口end;procedure TForm1.CommPortDriver1ReceiveData(Sender: TObject;  DataPtr: Pointer; DataSize: Integer);begin  mint:=datasize;end;
只有click函数调用完了才进入CommPortDriver1ReceiveData函数,那么要是我跟下位机通信,在click按钮按下时,不是不能实时的读取串口数据了?
 
timer控件不就能实现了?
 
var _GetData:boolean=False; // 加的procedure TForm1.Button1Click(Sender: TObject);varstr:string;begin str:='aaaaaaa'; mint:=0; _GetData:=False; // 加的 CommPortDriver1.SendString(str); while not _getdada do application.processmessages; Edit1.Text:=IntToStr(mint);//我需要的是第一次按下click先进入数据接收函数,再运行到这end;procedure TForm1.CommPortDriver1ReceiveData(Sender: TObject; DataPtr: Pointer; DataSize: Integer);begin mint:=datasize; _GetData:=true; // 加的end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
911
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部