我试图从COM端口读取数据,但我一直坚持这个问题。 我们有一些在COM4端口上运行的USB串口设备,我们有一些预定义的命令要执行,还有一些预定义的输出。
我们的要求是将命令发送到COM4端口并读取结果。
我在这里尝试过:
class Program
{
[STAThread]
static void Main(string[] args)
{
string cmd = "PING";
SerialPort mySerialPort = new SerialPort("COM4");
mySerialPort.BaudRate = 115200;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;
mySerialPort.DtrEnable = true;
mySerialPort.RtsEnable = true;
mySerialPort.Open();
mySerialPort.Write(cmd);
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
Console.WriteLine(mySerialPort.ReadChar());
Console.WriteLine("Press any key to continue...");
Console.WriteLine();
Console.ReadKey();
mySerialPort.Close();
}
}
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string data = sp.ReadExisting();
Console.WriteLine(data);
}
但它被黑色控制台屏幕困住,即使DataReceivedHandler
未被调用,也无法从COM4端口获取任何内容。
我经历了许多类似的话题:
.NET SerialPort DataReceived event not firing
How to Read and Write from the Serial Port
还有很多,但到目前为止还没有运气。
我在这里错过了什么吗?
P.S:它正在使用RealTerm应用程序,我们传递相同的命令并能够获得输出