在procedure TForm1.MSComm1Comm(Sender:TObject);
var
recstr:Olevariant;
begin
if MSComm1.CommEvent=2 then
begin
recstr:=MSComm1.Input;
Memo1.text:=Memo1.Text+recstr;
end;
end;
之前你应该打开portopen,DTREnable,RTSEnable

解决方案 »

  1.   

    我现在也在做这个东西,我有一点不解的就是,为什么要在mscomm控件的oncomm
    事件中接收数据呢?还有就是为什么我每次只能接收到8个字符,但是我定义的缓冲区是1024个字符的,也就是说我用memo来显示所接收的内容,
    memo.lines.add(mscomm1.input);
    每行最多只有8个字符,到底是怎么回事?
    另外请大家帮个忙,也就是哪儿有多线程的代码,当然是mscomm串口通信的源代码,我想看看,学习学习!谢谢!
      

  2.   

    或许你试一下把从mscom里接收的数据先用一个变量存起来,然后再在memo里面显示出来。还有,你是用什么芯片传数据的,有没有定义结束条件?