我编写了一个串口应用程序,我的第一个问题在stackoverflow解决了。 波特率是115200,问题是通过简单使用串行端口,在4 GHz的i7四核上CPU负载约为12%。如果我对数据进行一些简单的处理,负载就会上升到大约30-33%。因为我需要在笔记本电脑上运行,如果有人可以就如何提高效率给我一个建议那就太棒了。 我试过了:
以下是代码的一部分:
private void serialPort1_DataReceived_1(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
if (serialPort1.IsOpen)
{
int bytes = serialPort1.BytesToRead;
byte[] comBuffer = new byte[bytes];
serialPort1.Read(comBuffer, 0, bytes);
this.BeginInvoke(new EventHandler<DataEventArgs>(DisplayText), this, new DataEventArgs { Data = comBuffer });
}
}
public class DataEventArgs : EventArgs
{
public byte[] Data { get; set; }
}
private void DisplayText(object sender, DataEventArgs e)
{
Array.Reverse(...);
Array.Reverse(...);
Array.Reverse(...);
Array.Reverse(...);
angle0 = BitConverter.ToSingle(..., 0);
angle1 = BitConverter.ToSingle(..., 0);
gyro0 = BitConverter.ToInt16(..., 0);
...
}
谢谢!