Lecture port série RS232

Résolu
jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008 - 3 mars 2008 à 16:41
jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008 - 4 mars 2008 à 13:00
bonjour,
je suis étudiant actuelement en stage et je dois développez une application permettant de lire et d'écrire sur une memoire grace au port série.
La première étape consiste a lire les données
Voici le code :

Private Sub Command1_Click()
Dim Tampon$
MSComm1.CommPort = 1
MSComm1.Settings = "9600,o,8,1"
MSComm1.InputMode = comInputModeText
MSComm1.SThreshold = 1 ' Pour l'emission
MSComm1.PortOpen = True
MSComm1.InputLen = 0
Tampon$ = Tampon$ & MSComm1.Input
Text1.Text = Tampon
MSComm1.PortOpen = False
End Sub

Lors du click sur le bouton, un message d'erreur apparait avec l'erreur 8005 qui me dit que le port est deja ouvert.
Comment puis-je faire pour remédier à ce problème.

Merci d'avance

8 réponses

jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008
3 mars 2008 à 22:27
J AI RELANCER MON PC MAI RIEN NY FAIT MEME AVEC LES BOUTON
3
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
3 mars 2008 à 17:05
Bonjour,


Si tu reçois un message d'erreur comme quoi ton port est déjà ouvert, c'est qu'une autre application doit déjà l'utiliser. Soit tu trouves l'application fautive et tu la ferme, soit tu choisis un autre port de ton ordinateur.


Si je ne dis pas de bétises, MSComm n'est capable d'utiliser que les 16 premiers port série et je n'ai pas trouver a ce jour une fonction qui te permet de retrouver les port comm existant sur la machine.
Donc soit tu met en dur une autre valeur que le com 1 ou bien tu fais une boucle qui test les 16 valeurs en gérant les exceptions.

Toutefois, si le langage n'est pas imposé, je te conseille de passer a vb.net qui possède l'objet serialport bien plus complet.

Bonne Prog
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
3 mars 2008 à 18:36
"...Si tu reçois un message d'erreur comme quoi ton port est déjà ouvert, c'est qu'une autre application doit déjà..."

Ou tout simplement cette application qui a plantée lors des essais et qui donc à laisser le port ouvert.

En général on prévoit une commande pour ouvrir le port, une pour dialoguer sur le port et une autre pour le fermer. Ne serait-ce que durant la période de débogage.
Comme ça on peut ouvrir ou fermer le port indépendamment de tout autre partie du code.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0
jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008
3 mars 2008 à 19:59
G TOUT ESSAYER IL n'y aps d'autre programme qui utilise les ports.
Il n'y a qu'un port serie sur le PC.Ce n'est pas pendant le debogage c'est a l'instant ou je clique sue le bouton
Je suis totalement perdu depuis ce matin je suis dessus.
Le language est imposé c'est du VB sur VB6.
0

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

Posez votre question
FRatvks Messages postés 52 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 2 octobre 2009
3 mars 2008 à 20:45
Salut,

Ce que veux dire Casy c'est que si tu as déja ouvert ton port com a un autre moment (en deboggage pa exemple) et que si t'as planté, ton port reste ouvert et donc inaccessible pour une autre appli.......

Pour etre sûr d'etre "propre" il te faut relancer ton PC

Cela dit moi pour faire des test je crée un bouton pour ouvrir mon port, un pour le fermer et un pour faire les transmissions...

Quand tout marchera bien tu pourra te lancer a tout faire d'un coup mais comme on dit : pour apprendre a courrir il faut d'abort savoir Marcher !

@+

FR
0
jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008
4 mars 2008 à 08:52
voici le code avec les different bou ton: toujours le meme probleme de port:
Private Sub Command1_Click()            'Bouton ouverutre port
MSComm1.PortOpen = True
If MSComm1.PortOpen = True Then
Command1.BackColor = &HC000&
Else
Command1.BackColor = &HFF&
End If
End Sub


Private Sub Command2_Click()            'Bouton lecture
Tampon = Tampon & MSComm1.Input: DoEvents
If Tampon <> "" Then
Text1.Text = Tampon
Command2.BackColor = &HC000&
Else
Command2.BackColor = &HFF&
End If
End Sub


Private Sub Command3_Click()            'Bouton fermeture port
MSComm1.PortOpen = False
If MSComm1.PortOpen = False Then
Command3.BackColor = &HC000&
Else
Command3.BackColor = &HFF&
End If
End Sub


Private Sub Form_Load()
Dim Tampon As String
'MSComm1.PortOpen = False
MSComm1.CommPort = 1                    'Definition des paramètres de configuration du port série
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeText
MSComm1.SThreshold = 1
MSComm1.InputLen = 0
End Sub
0
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
4 mars 2008 à 09:37
Bonjour,

Vérifie dans le gestionnaire de périphérique que ton port physique se nomme bien COM1 et que tu n'est pas de port virtuel à la place.

Bonne Prog
0
jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008
4 mars 2008 à 13:00
c bon jai trouver le pb
c activesync qui utilisait mon port Com1
Lorsque j'efectue une lecture et que je ve l'afficher dans une textbox rien ne s'affiche pourtant des donnees arrive bien du port serie
0
Rejoignez-nous