C#-从USB设备发送和接收数据
我需要检测USB并定期从中发送/接收数据。我不熟悉Windows编程。我已经成功地实现了检测USB设备的功能。现在,为了打开连接并发送数据,我编写了以下代码C#-从USB设备发送和接收数据,c#,usb,C#,Usb,我需要检测USB并定期从中发送/接收数据。我不熟悉Windows编程。我已经成功地实现了检测USB设备的功能。现在,为了打开连接并发送数据,我编写了以下代码 static void OpenConnection() { SerialPort port = new SerialPort(); port.PortName = "COM1"; port.Parity = Parity.None;
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){…}
检查也需要重构(如果在此时处理它,接下来会发生什么?)。我试试看。