我创建了两个应用程序,一个用于发送(arduino),另一个用于接收数据(使用C#)。我几乎可以肯定,发送应用程序运行良好,我可以看到像Putty这样的程序中的数据(可以看串口)。
我的接收计划并不特别。我从微软的网站上获取了代码:
private readonly SerialPort _serialPort = new SerialPort("COM3", 9600);
_serialPort.Parity=Parity.None;
_serialPort.StopBits = StopBits.One;
_serialPort.DataBits = 8;
_serialPort.Handshake = Handshake.None;
_serialPort.RtsEnable = true;
_serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
private static void DataReceivedHandler(
object sender,
SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
_testString = indata;
Console.WriteLine(_testString);
}
数据示例是:y5-1
在Putty(或其他观看串口的程序)中我可以看到“y5-1”,但在我的程序数据中是这样的: “Y5- \ n 1"
我的意思是,换行速度太快了。数据在循环中发送延迟500 ms,因此发送速度不会太快。
任何人都知道我应该如何编写接收代码?