从串口接收Ascii值带零的字符串,为什么一到0的值处就断开呢

从串口接收Ascii值带0的字符串,为什么一到0的值处就断开呢?
从串口助手发送十六进制数过来:
A1 B2 00 0F D1 0E E7 03 78 0F 00 83 00 00 00 00 EC 

只收到
A1 B2

到ascii为0处就作为字符串结束。


procedure TForm1.CommTSReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
var
s:Pchar;
begin
   s:=buffer; 
  edit1.text:=s;
end;

------解决方案--------------------
因为#0是pchar字符串的结尾符从串口接收Ascii值带零的字符串,为什么一到0的值处就断开呢