7

我最近使用普通 USB 电缆将 USB 嵌入式设备 (mbed lpc1768) 插入到 Windows 7 桌面。根据在设备上运行的程序附带的文档,它通过 USB 虚拟串行端口与主机(桌面)通信。

如果我需要使用 c# 读取/写入数据,我应该从哪里开始?我可以使用 SerialPort .NET 类还是需要使用 LibUsbDotNet 库或其他东西?

4

1 回答 1

13

当我发现 USB 设备在 VCP 而不是 USB-HID 中进行通信时,这是一个好消息,因为串行连接很容易理解。

如果设备在VCP(Virtual Com Port)中运行,那么它就像使用System.IO.Ports.SerialPort类型一样容易。您将需要了解有关设备的一些基本信息,其中大部分可以从 Windows 管理(设备管理器)中收集。像这样构建后:

SerialPort port = new SerialPort(portNo, baudRate, parity, dataBits, stopBits);

可能需要也可能不需要设置一些附加标志,例如请求发送(RTS) 和数据终端就绪(DTR)

port.RtsEnable = true;
port.DtrEnable = true;

然后,打开端口。

port.Open();

要收听,您可以附加一个事件处理程序port.DataReceived,然后使用port.Read(byte[] buffer, int offset, int count)

port.DataReceived += (sender, e) => 
{ 
    byte[] buffer = new byte[port.BytesToRead];
    port.Read(buffer,0,port.BytesToRead);
    // Do something with buffer
};

要发送,您可以使用port.Write(byte[] buffer, int offset, int count)

于 2013-10-24T00:04:14.700 回答