Tutorial: Puerto serie en Linux en C++
Contenido
[ocultar]Introducción
Breve tutorial sobre el manejo del puerto serie en Linux en lenguaje C++. Los ejemplos utilizan la librería libserial. Yo utilizo el puerto serie para comunicarme con microcontroladores externos y controlar mis robots desde el PC. Aunque nuestro ordenador no disponga de puerto serie, no hay problema. Se pueden utilizar conversores USB-serie.
Los ejemplos de este tutorial se han probado en la distribución de Linux Ubuntu 9.04
Compilación
Para compilar los ejemplos, seguir los siguientes pasos:
- Descargar el paquete con los ejemplos: serial-c++-1.0.zip
- Descomprimirlo
- Entrar en el directorio serial-c++-1.0
- Ejecutar make
$ make g++ -Iserial -c -o send_receive.o send_receive.cpp g++ -o send_receive send_receive.o -lserial
Pruebas con el puerto serie
Para probar los ejemplos de este tutorial es necesario tener conectado un dispositivo al puerto serie que nos haga "eco" de todo lo recibido. De esta manera se puede verificar que el software del PC está funcionando correctamente.
Existen varias alternativas:
- Alternativa 1: Utilizar un cable para unir los pines 2 y 3 del puerto serie. Todo lo que se envíe por el pin de transmisión (TX) se recibirá automáticamente por el de recepción (RX).
- Alternativa 2: Utilizar un microcontrolador externo que ejecute un firmware para hacer eco. Esta es la opción que se ha usado para probar los ejemplos de este tutorial. Se ha utilizado la tarjeta Skypic
Pruebas con la tarjeta Skypic
Puerto serie y Linux
Los nombres que se dan en Linux a los dispositivos serie son:
Nombre del dispositivo | Descripción |
---|---|
/dev/ttyS0 | Primer puerto serie nativo. (Equivalente a COM1 en Windows) |
/dev/ttyS1 | Segundo puerto serie nativo. (Equivalente a COM2 en Windows) |
/dev/ttySnn | n-ésimo puerto serie nativo |
/dev/ttyUSB0 | Conversor USB-serie 1 |
/dev/ttyUSB1 | Conversor USB-serie 2 |
/dev/ttyUSBnn | n-ésimo conversor USB-serie |
/dev/rfcommn | n-ésimo puerto serie por bluetooth |
Descarga de los ejemplos
serial-c++-1.0.zip | Fuentes de los ejemplos |
Licencia
![]() |
![]() |
Autor
Enlaces
- Tutorial:Puerto serie en Linux. Programación del puerto serie en linux en lenguaje C.
- Comunicaciones serie (Hw)
- Comunicaciones serie con Python
- Módulo consola_io para acceso al teclado (lenguaje C, Linux)
- Cuadernos Técnicos
- LibSerial: Biblioteca para acceso al puerto serie en C++, para sistemas POSIX
Repositorio
- SVN del proyecto http://svn.iearobotics.com/serial/serial-c++-1.0/
Para obtener la última versión del SVN:
svn co http://svn.iearobotics.com/serial/serial-c++-1.0/
Noticias
- 14/Julio/2010: Comenzada esta página