在C#

时间:2018-07-24 20:04:30

标签: c# multithreading serial-port queue uart

我正在从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个字节),我认为这对于图表更新来说太快了,因为在缓冲区中建立字节的速度快于它们的处理速度。

我在许多其他文章中都读到,串行端口应该改为使用线程安全队列,但是我找不到任何好的资源向我展示如何进行此操作。有人可以帮我实现吗?

0 个答案:

没有答案