我正在使用C#。我有一个设备连接到COM端口。 我通过comport向设备发送初始命令,即socket alive。 我已经有十六进制的数据包格式。 当我写入端口,即
port.write(result)
我不会在port.readline中得到任何回复,即
port.readline = empty
请帮我解决这个问题。
答案 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响应您的请求,您可以看到带有断点的“数据”值或类似的