¿Cómo leo los datos del puerto serie usando C? y luego otra vez transferir los datos al módem? Estoy utilizando el cable RS 232 para la comunicación en serie ...Leer datos del puerto serie
Respuesta
En primer lugar, esto es muy dependiente del sistema operativo que utilice.
Para el tipo * nix normalmente se abre el dispositivo de puerto serie como archivo normal (/ dev/ttyS0, por ejemplo), y se empieza a leer o escribir desde él. En cuanto a Windows, puedo aconsejarle que busque una biblioteca confiable, porque la comunicación serial de Windows puede ser una verdadera pesadilla. Aún más, puede haber algunas diferencias entre versiones de Windows antiguas y nunca.
Personalmente, porque soy el usuario de wxWidgets, uso wxCTB. Debe buscar la biblioteca que se adapte a IDE que está utilizando.
algunos gratuitos de enlaces de carga;) www.robbayer.com/files/serial-win.pdf www.lookrs232.com/com_port_programming/
No es aplicable para incrustado (está etiquetado como 'incrustado'). –
No es cierto. Incrustado * generalmente * significa Linux o WinCE. –
Una gran cantidad de información útil sobre cómo tratar con los puertos serie, tanto en PC y en el extremo del cable del dispositivo se pueden encontrar en el sitio de Jan Axelson para el libro Serial Port Complete.
La interacción real con el puerto será altamente específica de la plataforma. En * nix de la mayoría de los sabores abre un dispositivo llamado algo como /dev/ttya
y usa read()
, write()
y ioctl()
para leer, escribir y configurar el puerto.
En Windows, se abre un archivo llamado COM1
(o \\.\COM1
en algunos sabores) con la función CreateFile()
, y luego lograr que se configura y feliz con funciones como SetCommState()
y la estructura DCB
. Los detalles son similares en líneas generales a las cosas que debe hacer en * nix, pero organizado de manera completamente diferente. Puede encontrar toda la discusión sobre la configuración y el uso de puertos COM en MSDN.
En el dispositivo incorporado, accederá directamente a los registros de hardware de UART o interactuará con un RTOS. De cualquier manera, esencialmente no hay forma de hacer que el código en el dispositivo sea ampliamente portátil.
En el terreno de Windows, es mejor que encuentre una biblioteca que haga realidad toda la magia.
Personalmente estoy usando Borland C++ para armar pequeñas utilidades para hablar con mi hardware (cargadores de arranque, configuración y pruebas) y estoy muy contento con el TurboPower Async Professional Library que funciona tanto en Delphi como en BCC y es de código abierto (Mozilla Licencia pública 1.1).
En el mundo integrado, su compilador tendrá algún mecanismo (generalmente específico del compilador) que le permita acceder a los registros de hardware que se utilizan para implementar la función de puerto serie dentro del dispositivo o en una memoria externa o dispositivo asignado IO. Estas definiciones de registro a menudo son provistas por la herramienta o el fabricante del procesador y es solo el caso de escribir los valores de control de configuración en los registros del puerto en serie para establecer su modo operativo y luego leer los datos del registro de búfer de recepción.
Suena simple pero, en la lista de correo MSP-430, las preguntas de programación de USART son el tema más común.
Para ampliar la respuesta de Ian, un compilador c incorporado típico tendrá una directiva de compilación o una declaración cuyos parámetros controlan configuraciones como la velocidad en baudios y asocian el UART (u otro hardware de E/S) con una transmisión. Puede especificar un nombre de secuencia (si tiene más de un puerto serie) o usar los valores predeterminados. Luego puede acceder al puerto serie con las rutinas habituales de caracteres c, y habrá una interrupción cuando reciba cada carácter. Entonces su rutina de interrupción lee cada carácter y lo pone en un búfer.
- 1. Puerto serie ReadLine vs ReadExisting o cómo leer los datos del puerto serie correctamente
- 2. Comunicación de puerto serie: puerto serie de sondeo frente a puerto serie Evento DataReceived
- 3. Simular el puerto serie
- 4. Sincronización del puerto serie Lectura/escritura
- 5. Cómo leer y escribir desde el puerto serie
- 6. Cómo leer desde el puerto serie en una página web
- 7. No lee los datos del puerto serie completo en C#
- 8. Lectura del puerto serie en Java
- 9. Detectar inserción/extracción del puerto serie
- 10. Cómo leer la comunicación del puerto serie en tampón y analizar los mensajes completos
- 11. ¿Cómo encontrar el UUID del puerto serie del dispositivo Bluetooth?
- 12. puerto serie Cable desconectado
- 13. ¿El puerto serie no funciona?
- 14. Datos binarios con pyserial (puerto serie de python)
- 15. Liberando el puerto serie correctamente
- 16. Lectura desde el puerto serie en C#
- 17. ¿Cómo transferir datos a un puerto en serie?
- 18. Acceso puerto serie a través de php
- 19. datos de la basura desde el puerto serie
- 20. ¿Puerto serie o puerto USB que usa D?
- 21. Leer y escribir datos a través del puerto USB en Android 3.1
- 22. Establecer el pin del puerto serie alto usando Python
- 23. Lea el archivo del puerto serie usando Java
- 24. Enviando la tecla "ENTER" a través del puerto serie
- 25. Escuchando puerto serie en Delphi 7
- 26. lectura desde el puerto serie falla
- 27. Liberación de un puerto serie virtual desconectado
- 28. Interfaz Javascript con puerto serie RS-232
- 29. Acceso al puerto serie en Adobe-Air
- 30. Método más rápido de subprocesamiento múltiple del puerto serie Análisis de datos C#
¿Qué sistema operativo? –
¿Qué hardware/plataforma? – DaveR
Definitivamente necesita agregar más información a esta pregunta. – Johan