C#-从USB设备发送和接收数据

C#-从USB设备发送和接收数据,c#,usb,C#,Usb,我需要检测USB并定期从中发送/接收数据。我不熟悉Windows编程。我已经成功地实现了检测USB设备的功能。现在,为了打开连接并发送数据,我编写了以下代码 static void OpenConnection() { SerialPort port = new SerialPort(); port.PortName = "COM1"; port.Parity = Parity.None;

我需要检测USB并定期从中发送/接收数据。我不熟悉Windows编程。我已经成功地实现了检测USB设备的功能。现在,为了打开连接并发送数据,我编写了以下代码

     static void OpenConnection()
        {
            SerialPort port = new SerialPort();
            port.PortName = "COM1";
            port.Parity = Parity.None;
            port.BaudRate = 9600;
            port.DataBits = 8;
            port.StopBits = StopBits.One;
            port.Handshake = Handshake.RequestToSend;
            port.ReceivedBytesThreshold = 8;
            if (port.IsOpen)
            {
                port.Close();
                port.Dispose();
            }

            byte[] bytesToSend = new byte[8] { 0X00, 0X01, 0X02, 0X03, 0X04, 0X05, 0X06, 0X07 };
            port.Open();
            port.Write(bytesToSend, 0, bytesToSend.Length);

            port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
            port.Close();
            port.Dispose();
        }
以及读取数据

        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort port = (SerialPort)sender;
            int bytes = port.BytesToRead;
            byte[] buffer = new byte[bytes];

            if (port.BytesToRead > 1)
            {
                port.Read(buffer, 0, bytes);
            }
        }
问题是它不起作用。要求向USB设备(温度传感器)发送8字节的数据,该设备将返回8字节的数据。应每5秒重复一次。此外,还应将数据发送到端点1,并从端点2接收数据

根据设备文档,它不需要驱动程序,如果我们发送8字节的数据,它将响应8字节的数据


如有任何意见/建议,不胜感激。提前感谢。

在打开端口之前附加
DataReceived
处理程序,不要在打开端口之后立即处理SerialPort。
if(port.IsOpen){…}
检查也需要重构(如果在此时处理它,接下来会发生什么?)。我试试看。