当前位置: 代码迷 >> 单片机 >> Windwos下,串口怎么获取第四pin 的 DTR 信号
  详细解决方案

Windwos下,串口怎么获取第四pin 的 DTR 信号

热度:639   发布时间:2016-04-28 15:13:20.0
Windwos下,串口如何获取第四pin 的 DTR 信号?
Windows 下,操作串口,如何 获取 DTR 引脚的信号?
串口 DTR

------解决方案--------------------
在 comm 事件里 就没有 DTR :

#define EV_RXCHAR           0x0001  // Any Character received
#define EV_RXFLAG           0x0002  // Received certain character
#define EV_TXEMPTY          0x0004  // Transmitt Queue Empty
#define EV_CTS              0x0008  // CTS changed state
#define EV_DSR              0x0010  // DSR changed state
#define EV_RLSD             0x0020  // RLSD changed state
#define EV_BREAK            0x0040  // BREAK received
#define EV_ERR              0x0080  // Line status error occurred
#define EV_RING             0x0100  // Ring signal detected
#define EV_PERR             0x0200  // Printer error occured
#define EV_RX80FULL         0x0400  // Receive buffer is 80 percent full
#define EV_EVENT1           0x0800  // Provider specific event 1
#define EV_EVENT2           0x1000  // Provider specific event 2

------解决方案--------------------
你这代码有点不对的地方:

 代码中 CreateEvent 创建的事件对象是手动置信号的,初始为无信号,而在二级线程里有 ResetEvent,但是,没有看到哪里有 SetEvent。这肯定不对。

------解决方案--------------------
你代码中有几处逻辑错误:
我看了一下:
WaitCommEvent 第一个参数是串口句柄,不应该是事件句柄,而且,我个人感觉,楼主没有必要再增加一个事件对象了,因为 SetCommMask就是针对串口事件的呀。
还有,你一个hCom ,在主线程中是 COM3,在二级线程中怎么又CreateFile COM4了呢? 这根本就没有打开两个串口呀……
楼主应该再多努力练习呀
------解决方案--------------------
其实,我在你的帖子中,看到 schlafenhamster 这位朋友已经帮你把代码贴出来了,我看了一下他的代码,没发现什么问题,但是我再看你的代码,发现了一些问题,只是把你们之间的差异说出来而已,真正帮助你决绝问题的,是 schlafenhamster 这位朋友。