1

我必须通过串口与 MarCator 数字指示器通信(我使用串口转 USB 适配器)。协议是:DTR 到 -Vdd 100ms 到 1s。然后在 15ms 到 160ms 之后发出 9 个字节的帧。

使用 TeraTerm,它就像一个魅力,但我无法让它与 C# 一起使用。

Char[] buff = new Char[9];
SerialPort port = new SerialPort("COM25", 4800, Parity.Even, 7, StopBits.Two);

Console.WriteLine("Created");
port.Open();
port.DtrEnable = true;
Console.WriteLine("Open");
Thread.Sleep(500);

port.DtrEnable = false;
Thread.Sleep(500);
port.DtrEnable = true;

Thread.Sleep(200);
if (port.BytesToRead != 0) {
    port.Read(buff, 0, 9);
    Console.WriteLine(buff);
}
else {
    Console.WriteLine("Fail...");
}
port.Close();

我看到 MarCator 正在接收 DTR 命令,但 port.BytesToRead 始终为 0。

问候,瓦尔

4

0 回答 0