Estoy trabajando con un dispositivo periférico que necesita ser comunicado a través de una serie. Puedo enviar comandos usando HyperTerminal, pero ahora necesito escribir programas que me permitan hacerlo sin HyperTerminal. ¿Alguien puede dirigirme a un sitio web y/o mostrarme un programa de muestra hello world para ayudarme a comenzar? He buscado a través de muchos sitios que me dan código VC6 no disponible/antiguo.Ejemplo básico de comunicación serial con Windows XP/win32
Respuesta
Para interactuar con el puerto serie, abra un archivo con uno de los nombres especiales "COM1" a "COM9". Para puertos serie con números más altos, el nombre de archivo especial comienza con \\? \, Que en código C/C++ debe ser escapado como "\\\\\\\ COM10", etc.
http://msdn.microsoft.com/en-us/library/ms810467.aspx tiene un muy buen tutorial sobre el uso del puerto serie. Tenga en cuenta que debe usar las funciones de E/S del archivo de Windows, como CreateFile()
, ReadFile()
y WriteFile()
. No estoy seguro si funcionará para usar funciones de E/S estándar como fopen()
, fread()
y fwrite()
.
Microsoft proporciona an article with sample code que describe cómo hacerlo en Win32.
Creo que también encontrarás un buen código de muestra para C# si VC6 es demasiado antiguo. Creo que también hay un montón de envolturas de puerto serie/COM "gratuitas", pero acabo de escribir el mío cuando escribí una pieza de software controlador de dispositivo RS232.
Google C# y puerto serie RS232 o
Tengo estos:
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
que no debería tener problemas para encontrar el código adecuado con una búsqueda en Google.
Boost:asio puede ser útil ya que recientemente se agregó un dispositivo en serie.
Aviso razonable; la documentación del puerto serie es light, presumiblemente porque es bastante nueva (se agregó en asio 1.1.1 que se incluyó en boost 1.36).
Pero trabajar en ASIO es, en mi humilde opinión, una solución mejor que usar la API de Win32 sin formato. ¿Por qué? Será más fácil de leer y mantener (es una API de nivel más alto) y será multiplataforma (excepto cuando necesite especificar el nombre del dispositivo específico del sistema operativo).
Las listas de correo Boost - Users y asio.user son bastante activas y amigables y deberían ser capaces de ayudarte si te quedas atascado.
Boost hace un trabajo horrible de comprobación de errores Win32 en programas de subprocesos múltiples. Simplemente ignora los valores de retorno para 'WaitForSingleObject'. Utilice bajo su propio riesgo, si no le importa tratar de localizar sus errores en un programa de subprocesos. – jww
Si utiliza .NET 2.0, consulte System.IO.Ports y this article debería ser útil. Si es Win32 directo, entonces Adam's answer es lo mejor.
- 1. Comunicación serial entre Java RXTX y Arduino
- 2. Ejemplo básico de pySQLite?
- 3. Comunicación serial con Arduino UNO y Mac usando bluetooth mate
- 4. Ejemplo básico de utilizar HaskellDB desasignar registros de una tabla
- 5. Ejemplo de temporizador de iphone básico
- 6. Serial/Com Port monitor para Windows x64
- 7. @SuppressWarnings ("serial")
- 8. Método más rápido de comunicación con un servicio de Windows
- 9. Entrada serial con buffer de línea
- 10. Rails 3/delayyed_job - Se busca: Ejemplo básico de correo retrasado
- 11. .NET 4 Serial Port ObjectDisposedException en Windows 7 solamente
- 12. Ejemplo minimalista de kernel de IPython comunicación bidireccional de javascript
- 13. Windows Workflow, servicios WCF Ria & Silverlight Ejemplo
- 14. Comunicación Bluetooth con Mono C#
- 15. pruebas log4net y nunit, el ejemplo más básico
- 16. Comunicación Java RS-232 en Windows
- 17. Serial: write() throttling?
- 18. C# Ayuda con un ejemplo pedagógico básico de un proceso BackgroundWorker llenar un DataGridView
- 19. Conseguir Serial Port Información
- 20. comunicación serie php en linux
- 21. Escribir matrices de bytes a serial con Ruby
- 22. Uso básico BackgroundWorker con parámetros
- 23. Triángulo LWJGL básico con OpenGL
- 24. Alternativas de terminal de comunicación serie para windows
- 25. Implementación de funciones con scripting muy básico
- 26. ¿Manera de Windows/.NET de supervisar/de eliminar errores el puerto serial?
- 27. Ejemplo de Windows Identity Foundation Solicitud MVC
- 28. Escribiendo un depurador muy básico
- 29. Uso básico de Waypoint
- 30. Conexión Jsoup con autenticación de acceso básico
¿Crees que el artículo vinculado sigue siendo relevante? ¿Hay una mejor manera en estos días? – baordog
@baordog el artículo vinculado [no es bueno en absoluto] (http://stackoverflow.com/questions/25364525/win32-api-how-to-read-the-serial-or-exit-within-a-timeout -if-wasnt-a-data). –