C# Serial Communication

Mohammad Adib picture Mohammad Adib · Oct 7, 2012 · Viewed 25.1k times · Source

How do I go about sending and receiving data from a USB comm port using C#?

The requirements for communication are:

  • 115.2 kBaud
  • 8-bit character size
  • 1 stop bit
  • No parity

Answer

Mitch picture Mitch · Oct 7, 2012

A USB comm port appears to the system the same as an onboard port. Use the SerialPort class.

    using (var sp = new System.IO.Ports.SerialPort("COM11", 115200, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One))
    {
        sp.Open();

        sp.WriteLine("Hello!");

        var readData = sp.ReadLine();
        Console.WriteLine(readData);
    }

You can find the available ports by calling SerialPort.GetPortNames. If that doesn't appeal to you, you can also access the port as a file, but that is much more complex and there are few reasons to do so. See the documentation for CreateFile for more.