Kar*_*lth 7 c# windows usb serial-port mbed
我最近使用普通USB电缆将USB嵌入式设备(mbed lpc1768)插入Windows 7桌面.根据设备上运行的程序附带的文档,它通过USB虚拟串行端口与主机(桌面)通信.
如果需要使用c#读/写数据,我从哪里开始?我可以使用SerialPort .NET类,还是需要使用LibUsbDotNet库或其他东西?
Wil*_*ull 10
当我发现USB设备以VCP而不是USB-HID进行通信时,这是个好消息,因为串行连接很容易理解.
如果设备在VCP
(虚拟Com端口)中运行,那么就像使用该System.IO.Ports.SerialPort
类型一样简单.您需要了解有关该设备的一些基本信息,其中大部分信息可以从Windows Management(设备管理器)中收集.在这样构建之后:
SerialPort port = new SerialPort(portNo, baudRate, parity, dataBits, stopBits);
Run Code Online (Sandbox Code Playgroud)
您可能需要或可能不需要设置一些额外的标志,例如请求发送(RTS)和数据终端就绪(DTR)
port.RtsEnable = true;
port.DtrEnable = true;
Run Code Online (Sandbox Code Playgroud)
然后,打开端口.
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
};
Run Code Online (Sandbox Code Playgroud)
要发送,您可以使用 port.Write(byte[] buffer, int offset, int count)