在串口编程时,读入的数据有全角的,还有半角混合的,
有时会出现乱码(出现乱码的位置固定的)请问有什么办法解决注:  正确的应为: 没有找到主盘。
     实际读出是: 没有找街髋獭?

解决方案 »

  1.   

    procedure TFrmMain.AtmCommReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);
    var
      Recdata:String;
    begin
      setlength(recdata,bufferlength);
      move(buffer^,Pchar(Recdata)^,bufferlength);
      ......你用的是spcomm吗,我用这个没有发现有什么问题
      

  2.   

    用 ComPort.v3.0控件的其实我要求很简单
    只要求可以读,写 COM数据就可以了用其他控件也行
    可以给一个具体的例子吗?
      

  3.   

        FTComm.Inx_XonXoffFlow  := False;
        FTComm.Outx_XonXoffFlow := False;把这两句加上,试试
      

  4.   

    确认是串口数据不对?串口传输的是纯数据流,至于数据代表什么意思,要靠协议去解释吧。乱码,通信两端的编解码一致?
    比如:我们在记事本里复制一串汉字到IAR编辑器里,全部显示?????????如果可以监测发出端的数据流,然后和收端数据流比较,就可以确认是不是串口传输本身问题,还是上层协议问题了
    数据传输一般都是有校验码的,如果数据本身有错,校验也不对了给个另外的思路,仅供参考