Communicating with an USB device over “USB Virtual Serial Port” using C#?

后端 未结 1 1504
[愿得一人]
[愿得一人] 2021-02-06 07:53

I recently plugged in an USB embedded device(mbed lpc1768) using a normal USB cable to a Windows 7 desktop. According to the docs that came with the program running on the devi

1条回答
  •  夕颜
    夕颜 (楼主)
    2021-02-06 08:24

    It is excellent news when I find out that a USB device communicates in VCP rather than USB-HID, because serial connections are easy to understand.

    If the device is operating in VCP (Virtual Com Port), then it is as easy as using the System.IO.Ports.SerialPort type. You will need to know some basic information about the device, most of which can be gleaned from Windows Management (Device Manager). After constructing like so:

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

    You may or may not need to set some additional flags, such as Request to send (RTS) and Data Terminal Ready (DTR)

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

    Then, open the port.

    port.Open();

    To listen, you can attach an event handler to port.DataReceived and then use 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
    };
    

    To send, you can use port.Write(byte[] buffer, int offset, int count)

    0 讨论(0)
提交回复
热议问题