Visual c++ port série

Signaler
Messages postés
11
Date d'inscription
samedi 4 mars 2006
Statut
Membre
Dernière intervention
1 novembre 2008
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
ahmed
bonjour


je développe une application sur visual c++ et j'aimerais récupérer une
donnée numérique d'un capteur avec une communication série. pour la
recevoir, il faut envoyer ctr+b (stx). Quand j'utilse l'hyperterminal
et je fait ctr+b par le clavier je reçoit la donnée, mais en visual c++
j'ai pas su faire...de plus,y a t-il une clasee ou une lib de
communication série ...merci d'avance

4 réponses

Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Pour la comm série regarde dans les code de ymca2003 tu trouveras ce que tu cherches.
En gros pour lire/ecrire sur un port série il faut se servir des API suivantes :
CreateFile(...)
ReadFile(...)
WriteFile(...)
CloseHandle(...)

Tu trouveras le détail de ces fonctions sur le site MSDN.

Shell
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,

Pour windows, l'aide sur le sujet est ici (Avant tout la partie configuration du port, qui se fait en remplissant une structure DCB, et en l'envoyant à windows comme ça). Pour la lecture/écriture, c'est la fonction CreateFile qui est utilisée, enchainée par des ReadFile et des WriteFile, puis terminée par un Closehandle, exactement comme pour un fichier. Des solution existent en utilisant adressant directement le port, mais ne sont pas à retenir.

Pas mal d'exemples sur ce site sur le sujet, faire une recherche.

Il y a par exemple celle-ci et celle-là.

<hr />
Un ZZ
Messages postés
11
Date d'inscription
samedi 4 mars 2006
Statut
Membre
Dernière intervention
1 novembre 2008

merci pour votre réponse , mais ce qui me géne c'est l'envoi de ctr+b sur le port série
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,
ctrl+A = 1
ctrl+B = 2
...
ctrl+Z=26

En C :

char ctrlB = 2;