用spcomm串口编程的时候,发送的的字符在buffer中保存的是对应的ascii码,比如我发送1,保存的就是49.在接收时候接收的也是49,。请问怎么让其转换成1呢显示在memo里呢??还有就是如果我想发送100,接收显示出100该怎么办?第一次做串口的东西,这个一直都弄不明白怎么搞。procedure TForm1.Button4Click(Sender: TObject);
begin
FComm.WriteCommData(PChar(edit1.Text),length(edit1.Text));
end;procedure TForm1.FCommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
viewstring:string;
rbuf:array[0..7] of byte;
i:integer;
begin
viewstring:='';
move(buffer^,PChar(@rbuf)^,bufferlength);
for i := 0 to bufferlength-1 do
viewstring:=inttohex(rbuf[i],2);
memo1.Lines.Add(viewstring);
end;
begin
FComm.WriteCommData(PChar(edit1.Text),length(edit1.Text));
end;procedure TForm1.FCommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
viewstring:string;
rbuf:array[0..7] of byte;
i:integer;
begin
viewstring:='';
move(buffer^,PChar(@rbuf)^,bufferlength);
for i := 0 to bufferlength-1 do
viewstring:=inttohex(rbuf[i],2);
memo1.Lines.Add(viewstring);
end;
viewstring:='';
for i := 0 to bufferlength-1 do
viewstring:=viewstring+Chr(rbuf[i]);如果是传送数字(类似这样处理)
首先把数打包成字节数组(注意高低字节)
FComm.WriteCommData(//字节数组,//长度);没用spcomm,不知道有没有发送字符串的方法和发送一般数据方法的区别
CPORT控件有WriteStr()和Write(),比较方便