【问题标题】:C# Serialport or USB HID connection?C# Serialport 或 USB HID 连接?
【发布时间】:2013-10-02 08:34:06
【问题描述】:

对于我的项目,我需要与赛普拉斯 PSoC5 通信。我可以使用串行连接或 USB HID 连接。

我创建了一个 C# 项目,用于向/从 PSoC5 发送和读取数据。现在,如果有新数据,我正在使用串行端口的 ReceivedData 事件来获得通知。基本上,我的项目可以接收应该实时绘制的数据流,或者只是我想在 GUI 中更新的一些设置。

现在我面临的问题是 ReceivedData 事件经常触发(每 32 个字节),当有数据流时这当然不好。基本上,如果我获得绘图数据,我每秒会收到 24000 字节。我知道我可以调整 ReceivedBytesThreshold,但是我不会收到低于阈值的数据的事件。

谁能告诉是否有办法处理这个问题?

将 PSoC5 用作 HID 设备会有优势吗?

【问题讨论】:

  • 我完全不清楚为什么这是一个问题。 Socket 通常用于 .NET 项目,它可以轻松维持每秒 5 兆字节的数据速率。 USB HID 的速度要慢得多,最高可达每秒 8000 字节。您可以通过降低波特率来任意降低串口速度。归根结底,这可能是一个消防水带问题,您只是无法足够快地绘制数据。人眼也跟不上,这是唯一真正重要的事情。扔掉什么由你自己决定。

标签: c# serial-port usb hid


【解决方案1】:

默认情况下,SerialPort.ReadBufferSize 设置为 4096 字节。更多信息here。但是您可以轻松更改它以容纳必要的数据量。然后在DataReceived 事件处理程序中做这样的事情

 static void Serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {

       if (Serial.BytesToRead < 24000) return;

               ... //Recieve and process your data here
    }

这里以24000 为例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 2012-03-11
    • 1970-01-01
    相关资源
    最近更新 更多