Serial Port Library [Windows/Linux]



In many projects we need to communicate with external equipment, and the « most » of time this communication is done, through a serial port. In order to reduce development time or make easier the prototyping step, i have decided to write my own serial port library and share it with the universe.

An exemple of use, where all data received are transmitted,

#include <stdio.h>
#include "../inc/serial.h"

// Create serial port
serial serial;

int main(int argc, char** argv)
{
 char buffer[256] = {0};
 int length = 0;
 
 // Open serial port ("COM3", "/dev/ttyUSB0")
 serial.Open("COM3", 9600, 8, NO, 1);
 
 while(1)
 {
  // Wait character(s)
  length = serial.Read(buffer);
  
  if(length)
  {  
   // Send data
   serial.Write(buffer, length);
  }
 }
 
 // Close serial port
 serial.Close();
 
 return 0;
}

The read() method is non blocking and return the number of received data.

This library is available here. I used Orwell Dev-C++ under Windows and a basic text editor under Linux.