我用Win32 API函数打开串口2。用以下两个函数都能打开
函数一:
hcom:=FileOpen('COM2',fmOpenReadWrite);函数二:
hcom:=CreateFile('COM2', GENERIC_READ or GENERIC_WRITE, 0, Nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,
0);但是无论用哪一个函数,在设置串口参数时,都返回(False)。
if hcom <> invalid_handle_value then begin
setupcomm(hcom,1024,1024);
getcommstate(hcom,lpdcb);
lpdcb.baudrate:=9600;
lpdcb.StopBits:=1;
lpdcb.ByteSize:=8;
lpdcb.Parity:=NOPARITY;
SetCommState(hcom,lpdcb);//设置不成功,点解???
end;
希望达人赐教!
函数一:
hcom:=FileOpen('COM2',fmOpenReadWrite);函数二:
hcom:=CreateFile('COM2', GENERIC_READ or GENERIC_WRITE, 0, Nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,
0);但是无论用哪一个函数,在设置串口参数时,都返回(False)。
if hcom <> invalid_handle_value then begin
setupcomm(hcom,1024,1024);
getcommstate(hcom,lpdcb);
lpdcb.baudrate:=9600;
lpdcb.StopBits:=1;
lpdcb.ByteSize:=8;
lpdcb.Parity:=NOPARITY;
SetCommState(hcom,lpdcb);//设置不成功,点解???
end;
希望达人赐教!
SetCommState(hcom,lpdcb);
====〉你试试把以上两句的 lpdcb --改成-->&lpdcb 看看好不好用。
SetCommState(hcom,lpdcb);
====〉你试试把以上两句的 lpdcb --改成-->@lpdcb 看看好不好用。
if hcom <> invalid_handle_value then begin
getcommstate(hcom,lpdcb);
lpdcb.baudrate:=9600;
lpdcb.StopBits:=1;
lpdcb.ByteSize:=8;
lpdcb.Parity:=NOPARITY;
if SetCommState(hcom,lpdcb) then
result := setupcomm(hcom,1024,1024);
end;这样呢?
同样的代码,我用BCB写,就能设置成功。难道是Delphi的问题????还是RPWT????
我用的是D6。
不是delphi的原因!