Com serie rs232 .

Signaler
Messages postés
20
Date d'inscription
jeudi 2 mai 2002
Statut
Membre
Dernière intervention
4 juin 2002
-
Messages postés
1
Date d'inscription
mercredi 29 septembre 2004
Statut
Membre
Dernière intervention
29 septembre 2004
-
Y'a t il quelqu'un qui saurait programmer la lecture / écriture d'un port serie rs232 sous visual c++ 6 , et sous win 2000 ???

Sinon, si c'est possible que sous win 98 ... alors comment ?

merci merci merci

15 réponses

Messages postés
41
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
7 mars 2004

Salut salut,

Voici deux infos :

Sous 98 et cie tu peux utiliser ds la bibliothèque stdio.h les instructions _inp(...) et _outp(...)

Par contre sous NT (et donc 2000 et XP) l'accès direct aux ports est rendu impossible à cause d'une couche HAL (hardware abstraction layer).
La solution consiste à passer par un CreateFile(...)
Mais le mieux est de consulter l'aide MSDN à ce sujet sur le site de Microsoft. Voici l'adresse :

//Programmation du port série sous NT !
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcecomm/htm/serial_1.asp

Si tu arrives à programmer sous NT tiens moi au courant ça me ferais plaisir.

Bon courage, Gaëlle
Messages postés
137
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
30 septembre 2004

Salut,

Perso j'arrive a programmer avec les deux methodes le port serie.

Moi mon seul pb, c'est qu'avec la deuxieme methode (CreateFile(), ...), je n'arrive pas a programmer le port //. Donc si vous y arrivez moi ca m'interesse beaucoup.

Pour la programmation port Serie avec la deuxieme methode, envoyez moi un mail, et je vous expliquerai comment on procede.

Voila.

Manson
Messages postés
17
Date d'inscription
jeudi 16 mai 2002
Statut
Membre
Dernière intervention
9 mars 2010

Je suis particulierement interresse !
tu as les sources sous 2000, alors?

Merci d'avance !

Tobby
seb79fr@yahoo.fr
Messages postés
2
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
5 juin 2002

Bonjour,
Peux tu me dire comment tu fais pour lire/ecrire sur port serie 232.
Merci

Val
v.mezza@free.fr
Messages postés
269
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
9 juin 2003

moi je suis interesser pour programmer le port //.

On peut utiliser : _inp(...) et _outp(...) ?
comment ces fonctions s'utilisent concrètement ?
merci
***raph***
Messages postés
137
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
30 septembre 2004

Salut,

#include <conio.h>

d'abord, il faut que tu es defini toutes les pins de la DB, par exemple comme ca :

#define COM1 0x3F8

#define COMx COM1

#define TxD COMx
#define RxD COMx
#define DLLB COMx
#define IER (COMx+1)
#define DLHB (COMx+1)
#define IIR (COMx+2)
#define FCR (COMx+2)
#define LCR (COMx+3)
#define MCR (COMx+4)
#define LSR (COMx+5)
#define MSR (COMx+6)

Maintenant que tu as definir les pins de la DB, y'a plus qu'a utiliser les fonctions
_inp() -> Pour lire sur une pin
_outp() -> Pour ecrire sur une pin

Maintenant il faut configurer le port : Ca c'est une configuration par defaut, c'est celle qui passe partout:

_outp(COMx, 0);
_outp(LCR, 9600);
_outp(COM1, 96);
_outp(IER, 0);
_outp(LCR, 2);
_outp(LCR, 2);

Voila !
Donc par exemple, si tu fais un montage simple sur ta DB, tu met une resistance de 220 Ohms et une led (dans cet ordre) entre la pin 7 (RTS) et la pin 5 (masse), et que tu fais ceci :

#include <conio.h>

#define COMx COM1

#define TxD COMx
#define RxD COMx
#define DLLB COMx
#define IER (COMx+1)
#define DLHB (COMx+1)
#define IIR (COMx+2)
#define FCR (COMx+2)
#define LCR (COMx+3)
#define MCR (COMx+4)
#define LSR (COMx+5)
#define MSR (COMx+6)

int main ()
{
_outp(COMx, 0);
_outp(LCR, 9600);
_outp(COM1, 96);
_outp(IER, 0);
_outp(LCR, 2);
_outp(LCR, 2);

_outp(MCR, 1);

getch();

_outp(MCR, 0);

getch();

_outp(MCR, 1);

getch();

_outp(MCR, 0);

}

Normalement tu as la led qui clignote.

Voila, pour toute question je suis a ta disposition.

Bon courage.
Messages postés
137
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
30 septembre 2004

Une erreur, que kip, m'a fait remarque, l'initialisatio, j'ai du la fumer paske elle ne se fait pas du tout comme cela, et pourtant dans une source je l'ai faite comme cela, sans probleme, enfin bon. Il vaut mieux pour vous faire comme ceci :

_outp(LCR,0x80); // DLAB = 1
_outp(DLLB,0x0C); // Pour
_outp(DLHB,0x00); // la vitesse a 9600
_outp(LCR,0x07); // DLAB = 0

Desole, et encore merci Kip.
Messages postés
10
Date d'inscription
mercredi 29 mai 2002
Statut
Membre
Dernière intervention
25 juin 2002

C normal.
Messages postés
3
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
10 juin 2002

Bonjour je te déconseille fortement d'utiliser l'accès direct aux ports (inp et outp) car c'est plus compatible depuis NT (2000 et XP).
De plus il peut y avoir des problèmes de performances si tu utilise l'accès direct au port.
En effet tu n'auras jamais les interruptions matérielle bufferiser les flux entrant ou sortant.

La seule méhode est le CreateFile.
Avec certaines version de VC6 tu as un OCX qui encapsule les fonctions de base de la liaison série.
MSCOMM.OCX.
Si tu veux des explications sur l'utilisation de CreateFile et les fonctions associées (ReadFile, WriteFile ...), n'hésite pas.
Messages postés
2
Date d'inscription
mardi 11 juin 2002
Statut
Membre
Dernière intervention
21 juin 2002

Salut, en fait je suis super ds la merde car j'aurais besoin du pgm qui gére le port com série et bien sur avec VC++, et est-il possible que tu me l'envoi sur mon adresse mail... tguilla13@yahoo.fr. En fait j'ai un pgm sous Unix, mais là VC++, c'est limite du chinois... si tu peux me dépanner et donc m'envoyer ce pgm de gestion du port com, merci pour tout...!!! Et encore merci.
A +
Messages postés
2
Date d'inscription
mardi 11 juin 2002
Statut
Membre
Dernière intervention
21 juin 2002

hello manson, j'aurais besoin de ton aide pour un ptit pgm qui gére le port com série et avec VC++. voila je suis bien ds la mouise, et donc j'aurais bien besoin de toi, donc donne moi de tes nouvelles. tguilla13@yahoo.fr
Merci d'avance pour tout.
Messages postés
2
Date d'inscription
jeudi 8 mai 2003
Statut
Membre
Dernière intervention
8 mai 2003

Salut, je suis étudiant en informatique industriel et je dois programmer sous Linux (en C++) un port série RS232 .
Je ne comprends pas car j'ai toujours des erreurs lorsque j'essaye de lire mes trames venant du port série .
Pourrais tu si tu as, un programme permettant de lire sur un port série .
Je te remercie d'avance . Romain
Messages postés
50
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
6 juillet 2003

salut manson,

moi je suis sous builder c++ en win2000
tu connais une methode pour controler le port serie
sinon donne moi un exemple avec creatfile car l'autre methode n,a pas fonctionné
car avec ca , ca marche pas !

_outp(LCR, 9600);
_outp(COM1, 96);
_outp(IER, 0);
_outp(LCR, 2);
_outp(LCR, 2);

merci tes source dans le forum son super!
Messages postés
1
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
3 juillet 2003

J'ai aussi un problème pour configurer le port série sous Win 2000. Alors que sous Win98 pas de soucis...
Quelqu'un à une idée ?!!
Messages postés
1
Date d'inscription
mercredi 29 septembre 2004
Statut
Membre
Dernière intervention
29 septembre 2004

Salut a tous

Je crois ke l'article de microsoft peut eclaicir certain

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp

HUlk :kisses)