读书人

为什么通信老不对

发布时间: 2013-01-11 11:57:35 作者: rapoo

为啥通信老不对
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

是这个原因

读书人网 >.NET

热点推荐