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)
{
// ...
}
}