Je travaille avec un périphérique qui doit être communiqué via un port série. Je peux lui envoyer des commandes en utilisant HyperTerminal, mais maintenant j'ai besoin d'écrire des programmes qui me permettront de le faire sans HyperTerminal. Quelqu'un peut-il me diriger vers un site web et/ou me montrer un programme d'exemple pour que je puisse commencer? J'ai cherché à travers de nombreux sites qui me donnent un code VC6 non compilable/ancien.Exemple de base de communication série avec Windows XP/win32
Répondre
Pour l'interface avec le port série, vous ouvrez un fichier avec l'un des noms de fichiers spéciaux "COM1" à "COM9". Pour les ports série avec des numéros plus élevés, le nom de fichier spécial commence par \\? \, Qui en C/C++ doit être échappé comme "\\\\? \\ COM10", etc.
http://msdn.microsoft.com/en-us/library/ms810467.aspx a vraiment une bonne tutoriel sur l'utilisation du port série. Notez que vous devez utiliser les fonctions d'E/S de fichier Windows telles que CreateFile()
, ReadFile()
et WriteFile()
. Je ne suis pas sûr si cela fonctionnera pour utiliser des fonctions d'E/S standard telles que fopen()
, fread()
et fwrite()
.
Microsoft fournit an article with sample code décrivant comment faire cela sous Win32.
Je crois que vous trouverez aussi beaucoup d'exemples de code pour C# si vous trouvez VC6 trop ancien. Je pense qu'il y a aussi un tas de wrappers de ports série/COM "libres" mais j'ai juste écrit le mien quand j'ai écrit un morceau de logiciel de contrôleur de périphérique RS232.
google C# et port série ou rs232
je suis arrivé ces:
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
Vous devriez avoir aucun problème à trouver le code approprié avec une recherche google.
Boost:asio peut être utile car un périphérique série a été ajouté récemment.
Avertissement juste; la documentation du port série est light, sans doute parce que c'est assez nouveau (il a été ajouté dans asio 1.1.1 qui a été inclus dans boost 1.36).
Mais travailler votre chemin à travers asio est, à mon humble avis, une meilleure solution que d'utiliser l'API Win32 brute. Pourquoi? Il sera plus facile à lire et à maintenir (c'est une API de plus haut niveau) et il sera multi-plateforme (sauf si vous devez spécifier le nom du périphérique spécifique au système d'exploitation). Les listes de diffusion Boost - Users et asio.user sont assez actives et amicales et devraient pouvoir vous aider si vous êtes bloqué.
Boost fait un travail horrible de vérification d'erreur Win32 dans les programmes multi-thread. Il ignore purement et simplement les valeurs de retour de 'WaitForSingleObject'. Utilisez à vos risques et périls, si cela ne vous dérange pas d'essayer de retrouver leurs bogues dans un programme fileté. – jww
Si vous utilisez .NET 2.0, voir System.IO.Ports et this article devrait vous être utile. Si direct Win32, alors Adam's answer est le meilleur.
- 1. communication série twoway communication java
- 2. Communication de port série asynchrone dans Windows dans c
- 3. Communication par port série
- 4. anomalie de communication série sous Linux?
- 5. Exemple AJAX de base avec ASP.NET MVC?
- 6. Evénements/Interruptions dans la communication série
- 7. Services de domaine et communication avec la base de données
- 8. Communication interprocessus sous Windows
- 9. Communication entre le périphérique série RS422 et le Javascript
- 10. Projet de bibliothèque Windows Communication Foundation Service
- 11. Windows Mobile Sockets SSL Bibliothèque de communication
- 12. Le modem se bloque pendant la communication série
- 13. Ho pour lire des données via la communication série?
- 14. Windows Forms & WCF - Communication d'application client
- 15. Communication avec un pilote sur un réseau sous Windows
- 16. Appel Pinvoke pour obtenir le numéro de série de Windows?
- 17. Application de surveillance de port série pour Windows CE?
- 18. Récupération du numéro de série d'un clavier USB sous Windows
- 19. application -> base de données <-> communication d'application web
- 20. Comment modifier la vitesse de communication série Simulink xPC cible à la volée
- 21. Premiers pas avec client -> communication serveur entre deux applications Windows. WCF?
- 22. conception de réseau; communication socket avec
- 23. communication silverlight 3.0 avec winforms
- 24. Quel code de communication série Delphi simple à l'épreuve du futur à utiliser?
- 25. Programmation série (établissement de liaison matérielle)
- 26. Windows Mobile, comment obtenir ID et série?
- 27. Port série Spy pour Windows Embedded CE
- 28. Exemple simple de fichier séquentiel et de planificateur Windows
- 29. Exemple de modèle de spécification
- 30. Port série de suppression de données avec Readline()
Pensez-vous que l'article lié est toujours pertinent? Y a-t-il un meilleur moyen ces jours-ci? – baordog
@baordog l'article lié [n'est pas bon du tout] (http://stackoverflow.com/questions/25364525/win32-api-how-to-read-the-serial-or-exit-within-a-timeout -if-wasnt-a-data). –