我正在从STM32F4-Nucleo设备向使用C#编写的Windows Forms应用程序发送串行数据。我正在以115200的波特率运行安装程序,并在GUI中将数据添加到实时图表(kayChart)中,如video所示。
serialDataReceivedEventHandler
函数读取数据并更新图表:
private void serialDataReceivedEventHandler(object sender,
SerialDataReceivedEventArgs e)
{
string recvData = null;
SerialPort serial = sender as SerialPort;
try
{
recvData = serial.ReadLine();
}
catch (IOException)
{
}
// chart update
double data;
if (Double.TryParse(recvData, out data))
{
serialDataKayChart.TriggeredUpdate(data);
}
}
我每5毫秒发送一个ADC样本(2个字节),我认为这对于图表更新来说太快了,因为在缓冲区中建立字节的速度快于它们的处理速度。
我在许多其他文章中都读到,串行端口应该改为使用线程安全队列,但是我找不到任何好的资源向我展示如何进行此操作。有人可以帮我实现吗?