Com serie rs232 .

cs_hotrod1 Messages postés 20 Date d'inscription jeudi 2 mai 2002 Statut Membre Dernière intervention 4 juin 2002 - 4 juin 2002 à 09:06
HULK_69 Messages postés 1 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 29 septembre 2004 - 29 sept. 2004 à 21:52
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

cs_Gaelle Messages postés 41 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 7 mars 2004
4 juin 2002 à 14:04
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
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
4 juin 2002 à 16:19
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
0
cs_tobby Messages postés 17 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 9 mars 2010
4 juin 2002 à 21:03
Je suis particulierement interresse !
tu as les sources sous 2000, alors?

Merci d'avance !

Tobby
seb79fr@yahoo.fr
0
valoide Messages postés 2 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 5 juin 2002
5 juin 2002 à 10:28
Bonjour,
Peux tu me dire comment tu fais pour lire/ecrire sur port serie 232.
Merci

Val
v.mezza@free.fr
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003
5 juin 2002 à 10:46
moi je suis interesser pour programmer le port //.

On peut utiliser : _inp(...) et _outp(...) ?
comment ces fonctions s'utilisent concrètement ?
merci
***raph***
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
7 juin 2002 à 07:52
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.
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
7 juin 2002 à 17:48
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.
0
cs_kip Messages postés 10 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 25 juin 2002
10 juin 2002 à 14:44
C normal.
0
prsoft Messages postés 3 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 10 juin 2002
10 juin 2002 à 20:22
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.
0
cs_guilla Messages postés 2 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 21 juin 2002
21 juin 2002 à 15:47
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 +
0
cs_guilla Messages postés 2 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 21 juin 2002
21 juin 2002 à 15:54
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.
0
cs_Robou Messages postés 2 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 8 mai 2003
8 mai 2003 à 21:43
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
0
cs_jackky Messages postés 50 Date d'inscription mardi 8 janvier 2002 Statut Membre Dernière intervention 6 juillet 2003
2 juil. 2003 à 19:02
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!
0
Nybbams Messages postés 1 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 3 juillet 2003
3 juil. 2003 à 09:08
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 ?!!
0
HULK_69 Messages postés 1 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 29 septembre 2004
29 sept. 2004 à 21:52
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)
0
Rejoignez-nous