我用MSComm串口取来的数据,都是乱码!请问怎么回事?

解决方案 »

  1.   

    procedure TFrmBill.FormCreate(Sender: TObject);
    begin
      MSComm1.InBufferCount:=0;
      MSComm1.InputLen:=0;
      MSComm1.RThreshold:=10;
    end;procedure TFrmBill.B_weightClick(Sender: TObject);
    begin
      if FrmComm.Comm_Select.Text='COM1' then
         MSComm1.CommPort:=1
      else
         MSComm1.CommPort:=2;
      MSComm1.Settings:=FrmComm.Comm_String.Text;
      MSComm1.PortOpen:=true;
      MSComm1.DTREnable:=true;
      MSComm1.RTSEnable:=true;  //showmessage(FloatToStr(int3));
    end;procedure TFrmBill.MSComm1Comm(Sender: TObject);
    var
      reStr1:String;
      buffer:Variant;
    begin
      case MSComm1.CommEvent of
      comEvReceive:
        begin
           buffer:=MSComm1.Input;
           reStr1:=buffer;
           memo1.Text:=memo1.Text+reStr1;
          end;
     end;
    end.
      

  2.   

    var
     Recdata:array of byte;
     I:integer;
     Rs:ansiString;
     begin
         RecData := MSComm1.Input;
          for I := low(RecData) to high(RecData) do
            Rs := Rs + IntToHex(RecData[I],2);
     end;
      

  3.   

    我想把收到的数据直接转化成传输过来的字符串,用下面的代码行吗?
    for I := low(RecData) to high(RecData) do
           begin
            bTMP:=RecData[i];
            Rs := Rs + chr(bTMP);
           end;
          Memo1.Text:=Memo1.Text+RS;
    可在文本框Memo里什么也看不到!
    请问怎么回事?