1. 程式人生 > >用SPCOMM 在 Delphi中實現串列埠通訊

用SPCOMM 在 Delphi中實現串列埠通訊

SPCOMM 控制元件的屬性設定很關鍵的,特別是使用事件驅動時接收大塊資料時尤為明顯,如果設定不當,接收到的資料可能嚴重出錯。根據本人經驗,要注意事項如下:
ReadIntervalTimeout:=100
SPCOMM 屬性時,所有 可設定 True 和 False 的屬性應當設定成 False;
在接收資料時,應注意適當設定延時,見以下程式碼:

procedure TCKFRM.SPCOMReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
TXT:string;
I,L:INTEGER;
RBUF:ARRAY[0..2048] of BYTE;
begin
Move(Buffer^, pchar(@rbuf)^, BufferLength); //接收RS232的資料並顯示Memo1上。
L:=BufferLength;
FOR I:=0 TO L-1 DO BEGIN
TXT:=TXT+INTTOHEX(RBUF[I],2);
END;
READDATA.TEXT:=TXT;
end;
SPCOMM 控制元件每次只能接收 2048 個位元組,如果大於 2048 個位元組,則分多次接收.