利用串口Api编写串口程序,
以下为我写的串口设置函数
function TDb.SetComm: Boolean;
var
FDCB:_DCB;
begin
result := false;
TRY
GetCommState(self.CommHandle,FDCB);
FDCB.BaudRate := self.CommBortRate;
FDCB.Parity := self.CommParity;
FDCB.ByteSize := self.CommByteSize;
FDCB.StopBits := self.CommStopBits;
SetCommState(self.CommHandle,FDCB);//设置串口的Api
RESULT := TRUE;
EXCEPT
EXIT;
END;
end;
结果发现:只有在停止位为2的时候,才能改变串口设置(奇怪!)
请问高手这是为何?还有就是使用WriteFile发送数据不正确,乱码
(我确定两边的串口设置是一致的,而且接收数据正确)
请问为何?
以下为我写的串口设置函数
function TDb.SetComm: Boolean;
var
FDCB:_DCB;
begin
result := false;
TRY
GetCommState(self.CommHandle,FDCB);
FDCB.BaudRate := self.CommBortRate;
FDCB.Parity := self.CommParity;
FDCB.ByteSize := self.CommByteSize;
FDCB.StopBits := self.CommStopBits;
SetCommState(self.CommHandle,FDCB);//设置串口的Api
RESULT := TRUE;
EXCEPT
EXIT;
END;
end;
结果发现:只有在停止位为2的时候,才能改变串口设置(奇怪!)
请问高手这是为何?还有就是使用WriteFile发送数据不正确,乱码
(我确定两边的串口设置是一致的,而且接收数据正确)
请问为何?
一般使用SPCOMM就足够了