C#串行端口还是USB HID连接?

C#串行端口还是USB HID连接?,c#,serial-port,usb,hid,C#,Serial Port,Usb,Hid,对于我的项目,我需要与Cypress PSoC5进行沟通。我可以使用串行连接或USB HID连接 我创建了一个C#项目,用于向PSoC5发送数据或从PSoC5读取数据。现在,我正在使用serialport的ReceivedData事件来获取是否有新数据的通知。基本上,我的项目可以接收实时绘制的数据流,也可以只接收一些我想在GUI中更新的设置 现在我面临的问题是,ReceivedData事件经常触发(每32字节一次),这在有数据流的情况下当然不好。基本上,如果我获得绘图数据,每秒接收24000字节

对于我的项目,我需要与Cypress PSoC5进行沟通。我可以使用串行连接或USB HID连接

我创建了一个C#项目,用于向PSoC5发送数据或从PSoC5读取数据。现在,我正在使用serialport的ReceivedData事件来获取是否有新数据的通知。基本上,我的项目可以接收实时绘制的数据流,也可以只接收一些我想在GUI中更新的设置

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

有人能告诉我是否有办法解决这个问题吗


将PSoC5用作HID设备是否有好处?

默认情况下
串行端口。ReadBufferSize
设置为4096字节。更多信息。但您可以轻松地更改它以容纳必要的数据量。然后在
DataReceived
事件处理程序中执行如下操作

 static void Serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {

       if (Serial.BytesToRead < 24000) return;

               ... //Recieve and process your data here
    }
static void Serial\u DataReceived(对象发送方,SerialDataReceivedEventArgs e)
{
if(Serial.BytesToRead<24000)返回;
…//在此处接收和处理您的数据
}

24000
就是一个例子。

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