MSComm怎么總是返回上一條指令的結果?代碼如下:C/C++ code//---------------------------------------void
MSComm怎么總是返回上一條指令的結果?
代碼如下:
- C/C++ code
//---------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){ MSComm1->OutBufferCount = 0; MSComm1->Output = Edit1->Text + "\r"; MSComm1->RThreshold = 1; Memo1->Lines->Add("\n" + Edit1->Text); Memo1->Lines->Add(temp);}//---------------------------------------void __fastcall TForm1::MSComm1Comm(TObject *Sender){ OleVariant rec; rec = MSComm1->Input; temp = temp + rec.AsType(varString); MSComm1->InBufferCount = 0;}//---------------------------------------運行后發送指令,它總是返回上一條指令的執行結果而不是當前指令的返回值,我以為是設備需要時間
但是我用Sleep(1000)后,結果也是這樣。有高手知道是怎么回事嗎?
[解决办法]
....
if (tmp[strlen(tmp.c_str()) - 1 ] == '\r') {
//do somethings
tmp = "";
}
