首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

为什么通信老不对

2013-01-11 
为啥通信老不对procedure TForm3.Comm1ReceiveData(Sender: TObject Buffer: PWideCharBufferLength: Wo

为啥通信老不对
procedure TForm3.Comm1ReceiveData(Sender: TObject; Buffer: PWideChar;
  BufferLength: Word);
var

 pStr        : PChar;
begin
   pStr := Buffer;
  memo2.Lines.Add(pStr);
end;

TPCOMM comm1属性代码:
object Comm1: TComm
    CommName = 'COM4'
    XonLimit = 500
    XoffLimit = 500
    ByteSize = _8
    Parity = None
    StopBits = _1
    XonChar = #17
    XoffChar = #19
    ReplacedChar = #0
    ReadIntervalTimeout = 100
    ReadTotalTimeoutMultiplier = 0
    ReadTotalTimeoutConstant = 0
    WriteTotalTimeoutMultiplier = 0
    WriteTotalTimeoutConstant = 0
    OnReceiveData = Comm1ReceiveData
    Left = 48
    Top = 256
  end


上下位机波特率都为9600 ,异步通信,8位数据,禁止校验位,1位停止位。
比如发送:上位机发送efead 然后接收得到下面乱码,得到的数据也不全。下位机直接发送,情况也类似下面的接收结果。 
e???????

f???????????

e???????

用串口助手都比较正常,为啥自己弄的不对?
[解决办法]
PAnsichar
[解决办法]
查看下你的BufferLength
[解决办法]

引用:
PAnsichar

 是这个原因

热点排行