我试图在我的 PC 上的 COM 端口上读取设备的输出。我为此编写了一个 C# 程序。使用 PuTTY,我可以看到我期望从我的设备获得的输出。问题是我的函数SerialPort.ReadExisting();
中的DataReceived
函数给了我一个完全不同的字符串。使用 COM 端口读取数据的正确方法是什么SerialPort
?
此外,我从中获得SerialPort.ReadExisting();
的字符串是我发送到设备的字符串的片段。
下面是初始化SerialPort
.
SerialPort port;
void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string data = port.ReadExisting();
}
void init_serialport(object sender, EventArgs e)
{
if (port != null)
{
port.Close();
}
port = new SerialPort( /* ... */ );
port.BaudRate = 9600;
port.Parity = Parity.None;
port.DataBits = 8;
port.StopBits = StopBits.One;
port.Handshake = Handshake.RequestToSend;
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
try
{
port.Open();
}
catch (Exception ex)
{
// ...
}
}