procedure TForm1.BitBtn4Click(Sender: TObject);//發送命令  与電子稱相聯
var
  i:integer;
  buf : array[0..5] of char ;
  ts:string;
begin
  buf[0]:=chr(2);
  buf[1]:='A';
  buf[2]:='B';
  buf[3]:=chr(0);   
  buf[4]:=chr(3);    
  buf[5]:=chr(3);  
  ts:='';
  for i:=0 to length(buf)-1 do
    ts:=ts+buf[i];
 comm1.WriteCommData(pchar(ts),Length(ts));
end;procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);//接收數據
var
  s22:string;
begin
  memo2.Invalidate ;
  setLength(S22,BufferLength);
  move(Buffer^,pchar(S22)^,bufferLength);
  memo1.Lines.Add(s22);
  memo1.Invalidate;
end;

解决方案 »

  1.   

    你在你的receivedata里设置断点,看看接受的s22是否为空。
      

  2.   

    在筆記本上調試就是沒有產生receivedata事件!
      

  3.   

    我也把spcom1所有的屬性都設為false了,都修改過進行測試就是收不到數據,也不產生receivedata事件!
    但在台試机上就能收到正確的數據.
      

  4.   

    到你机子的CMOS里看看是不是串口禁止掉了。
      

  5.   

    串口沒有禁止,我用2,3線短接能收到我發送的數據,我在com口用鼠標試過,在用鼠標時能收到數據!
      

  6.   

    你不用Spcomm组件,用一下mscomm32.ocx控件试一下看, 我也搞称重管理软件有好几年了都没有问题
      

  7.   

    我出现这种情况是,我的笔记本USB换串口的有问题,换了一个就没有问题了,是不是楼主串口或是硬件驱动有问题
      

  8.   

    我以前也碰到过上面的问题,是串口驱动的问题!
    我用的是usB转串口,发现需要验证过的驱动程序才行。
      

  9.   

    自带串口不需要驱动,如果是usb转的,应该是驱动的问题。否则就是串口坏了