做在动态库里。
1、在open端口时创建spcomm,关闭时释放;
function OpenPort(pComChar;Baud:Integer=19200): integer;
begin
if MyComm=nil then MyComm:=TComm.Create(nil) //上层软件没有打开串口,就不创建
else
begin
Result:=g_ComMHandle;
exit;
end;
result := g_ComMHandle;
Sleep(300);
SetRDInfoDefault;
except
MyComm.Free;
MyComm:=nil;
Result := 0;
end;
end;
function ClosePort(): integer;
begin
if MyComm=nil then
begin
Result:=0;
exit;
end;
try
if MyComm<>nil then
MyComm.StopComm;
g_ComMHandle := 0;
finally
Result := g_ComMHandle;
FreeAndNil(MyComm);
end;
end;
2、发送和接收数据
用:WriteCommData,ReceiveData
这两个事件视程序需要,可以进行再封装,以达到实际需要。