回 帖 发 新 帖 刷新版面

主题:[讨论]MSCOMM 求助

OleVariant s;
 AnsiString str;
 char Rx_Buff;

 s = MainForm->MSComm->Input;
 str = s.AsType(varString);

 要如何将所收到的资料传给 Rx_Buff;

当我资料为0xAB 0xAB ,无法于第一个0xAB 去执行 MSCommComm,需要第二的byte送出才会执行 MSCommComm,但我送 ‘a’ ,就能马上去执行 MSCommComm

回复列表 (共1个回复)

沙发

void __fastcall TMainForm::MSCommComm(TObject *Sender)
{
     char Rx_Buff[0];
OleVariant s;
     Byte ss;

     s = MainForm->MSComm->Input;
     ss = s.GetElement(0);

     Rx_Buff[0] = ss;
     MainForm->RecriveMemo->Lines->Add(Rx_Buff);
}

原本 InputMode = 0 ,会有些值无法马上执行 MSCommComm ,现在 InputMode = 1 ,就可以了,不过当资料连续送时会有问题,
资料: “1234”  => 在RecriveMemo上可以看见1 2 ,但 3 4不见了,再次送”1234”时会看见之前的3 4.
如果资料是 “1” “2” “3” “4” ,不要连续送出就行……

我来回复

您尚未登录,请登录后再回复。点此登录或注册