Port.Readline()没有响应。为什么?

时间:2013-08-27 07:34:33

标签: c# sockets serial-port port

我正在使用C#。我有一个设备连接到COM端口。 我通过comport向设备发送初始命令,即socket alive。 我已经有十六进制的数据包格式。 当我写入端口,即

port.write(result)

我不会在port.readline中得到任何回复,即

port.readline = empty

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

您必须创建SerialPortDataReceived函数并将其添加到DataRecieved事件。之后,您应该在此函数中使用Read或ReadLine方法。

示例:

         private SerialPort _serialPort;
    private void InitSerialPort()
    {
        _serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One)
        {
            Handshake = Handshake.None,

        };

        _serialPort.DataReceived += SerialPortDataReceived;
        _serialPort.Open();

        return;
    }

   private void SerialPortDataReceived(object sender, SerialDataReceivedEventArgs e)
    {

        string data = _serialPort.ReadExisting();

    }

如果Port响应您的请求,您可以看到带有断点的“数据”值或类似的