在我的串行通讯程序中启用DTR时出现问题

时间:2019-05-13 09:22:19

标签: c# .net winforms serial-port

我正在制作一个与串行端口通信的程序(主要是RS232,但在这种情况下,我正在使用USB设备)。现在,启用DTR时出现问题。

private void CheckBox_DTR_CheckedChanged(object sender, EventArgs e)
{
    if(COMport != null)
    {
        if (CheckBox_DTR.Checked)
        {
          COMport.DtrEnable = true;
        }
        else
        {
          COMport.DtrEnable = false;
        }

    }

}

在我的代码的这一部分中,如果选中了复选框,我将启用DTR。当我检查引脚电压时,一切似乎都没问题,因为启用后电压会升高。但是有一个问题:当我使用其他终端启用DTR时,设备会抛出一些信息,但是当我使用程序执行此操作时,它不会发送该信息。

My program

Other Serial Terminal

如您所见,其他终端具有一些其他信息,设备在启用DTR后会发送出去。因此,我不确定要从设备接收该信息该怎么做(我是否需要一些其他代码或其他东西)...

1 个答案:

答案 0 :(得分:0)

通常,在使用DTR时,您需要打开硬件握手。我会尝试设置COMport.Handshake = Handshake.XOnXOff;

根据MSDN here

  

通常在XON / XOFF软件握手和请求发送/清除发送(RTS / CTS)硬件握手以及调制解调器通信期间启用数据终端就绪(DTR)。