用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;
uj5u.com熱心網友回復:
這要看串口通信協議,串口一般常用的傳送資料編碼就是ASCII或二進制,或者二者混合,你這例子是傳送字串,接收按數字處理了如果是傳送字串:
viewstring:='';
for i := 0 to bufferlength-1 do
viewstring:=viewstring+Chr(rbuf[i]);
如果是傳送數字(類似這樣處理)
首先把數打包成位元組陣列(注意高低位元組)
FComm.WriteCommData(//位元組陣列,//長度);
沒用spcomm,不知道有沒有發送字串的方法和發送一般資料方法的區別
CPORT控制元件有WriteStr()和Write(),比較方便
uj5u.com熱心網友回復:
謝謝你,我試下哈uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
可以dowmload cport library 來用看看..
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/88807.html
標籤:VCL組件開發及應用
上一篇:已知n,d RSA_private_decrypt 怎么解密
下一篇:往Excel檔案里 裝入圖片,有多個作業表Sheet 時,在紅色代碼地方報錯 OLE error 800A03EC ,導致圖片裝入不成功
