我用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;
希望达人赐教!

解决方案 »

  1.   

    getcommstate(hcom,lpdcb);
    SetCommState(hcom,lpdcb);
    ====〉你试试把以上两句的 lpdcb --改成-->&lpdcb 看看好不好用。
      

  2.   

    getcommstate(hcom,lpdcb);
    SetCommState(hcom,lpdcb);
    ====〉你试试把以上两句的 lpdcb --改成-->@lpdcb 看看好不好用。
      

  3.   

    result:= false;
    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;这样呢?
      

  4.   

    没有用,不行。
    同样的代码,我用BCB写,就能设置成功。难道是Delphi的问题????还是RPWT????
    我用的是D6。
      

  5.   

    lpdcb被申明为什么样子?
    不是delphi的原因!