唉,试了好多天了,一直是这样……我在正常的串口通信中使用GetCommModemStatus(HANDLE,LPDWORD),调用的句柄当然是该串口的句柄而且通信明明很成功,但是得到的状态值始终是0。哦,我是在一个发送数据的函数里添加的GetCommModemStatus,在发送数据之前之后都检查一次状态,但是都得到0.莫非本来就该是0? 郁闷啊……

解决方案 »

  1.   

    //LPDWORD=:
    #define MS_CTS_ON           ((DWORD)0x0010)
    #define MS_DSR_ON           ((DWORD)0x0020)
    #define MS_RING_ON          ((DWORD)0x0040)
    #define MS_RLSD_ON          ((DWORD)0x0080)
    // 如果没有modem 或者 没用硬件流控制,都为off,则=0;
      

  2.   

    //1、串口不是usb转串口那种吧?
    //2、下位机是否会置CTS,DSR,RING,RLSD状态?
    //普通通讯,这些脚位是低电平。
      

  3.   

    谢谢楼上几位
    ————————————————有一个串口是USB转串口那种- -
    这种串口检测不了吗? 另一个串口就是正常的串口,接一个AVR单片机,不知道会不会置CTS,DSR,RING,RLSD状态……
    它里面具体的通信协议也不清楚。反正两个串口都返回是0.————————————————
    还有,如果我就直接接一个5V的电压到CTS脚(只接CTS和GND,其余脚悬空),能返回非零值吗?
      

  4.   

    有一个串口是USB转串口那种
    //这种串口只有RX,TX,GND3个脚位有效。如果我就直接接一个5V的电压到CTS脚(只接CTS和GND,其余脚悬空),能返回非零值吗?
    //是的。
      

  5.   

    呵呵,成功了感谢lfchen 和另外两位!