RS 232

Résolu
elinep Messages postés 56 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 3 décembre 2009 - 9 juin 2006 à 17:27
elinep Messages postés 56 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 3 décembre 2009 - 12 juin 2006 à 20:12
Bonjour,

Je voudrais pouvoir commander manuellement la ligne RTS du port com. Je croyais que c'etait possible avec RTSEnable mais apparemment ca ne marche pas. Voici mon code :

--------------------------------------------------------------------------
Private Sub Form_Load()
Form1.Caption = "App1"
With MSComm1 'configuration du port
.CommPort = 1 'On utilise le port COM1:
.Handshaking = 0
.RThreshold = 1
.RTSEnable = True 'mieux pour le port COM:
.Settings = "9600,n,8,1"
.SThreshold = 1
.PortOpen = True 'ouverture du port
End With


Command1.Caption = "&Send"
Text1.Text = "Ces données ont été envoyés via le port COM"
End Sub


Private Sub Command1_Click()
MSComm1.RTSEnable = True    ' /!\ Marche pas :(
MSComm1.Output = Text1.Text
MSComm1.RTSEnable = False   ' /!\ Marche pas :(
End Sub


Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False 'on ferme le port à la fermeture de l'appli
End Sub
--------------------------------------------------------------------------
Donc qd j'appuis sur le bouton Command1 je souhaite envoyer les données contenu dans le Text1 sur le port com et forcer a 1 la ligne RTS durant le transfert.

4 réponses

elinep Messages postés 56 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 3 décembre 2009
12 juin 2006 à 20:12
Mon niveau d'anglais n'etait pas a remettre en cause :p.
En fait c'etait juste le cable que j'utilisais qui etait mal soudé. Donc ca marche !
3
cs_molo molo Messages postés 55 Date d'inscription lundi 14 novembre 2005 Statut Membre Dernière intervention 23 juin 2008
9 juin 2006 à 18:21
Salut,

Cela peut dépendre du type de matériel que tu utilises.

En clair, je m'en sert avec un câble opto qui à deux type de connexion DUPLEX et SIMPLEX.

DUPLEX :
   DTREnable=true
   RTSEnable=false

SIMPLEX :
   DTREnable=true
   RTSEnable=true

Ca c'est une piste !

La 2ème c'est de vérifier tes settings.


Les appareils tournent tous avec des paramètres différents ex : à 4800,E,7,2


Enfin, il me semble qu'il faut envoyer une chaine de caractère avec Output


.output="?" & chr$(13)                             par exemple


J'espère que cela te sera utile.


A+


Cedric




 
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
9 juin 2006 à 20:18
Tout dépend de ce que tu essaie de faire, si tu veux pouvoir toi même contrôler l'envoi de data je te conseil plustôt d'utiliser le DSR (Data terminal ready) ou le CTS (clear to send)jette un oeil la dessus :

http://www.stielec.ac-aix-marseille.fr/cours/abati/rs232.htm
0
elinep Messages postés 56 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 3 décembre 2009
10 juin 2006 à 23:37
Bah en fait j'ai fais un test a vide avec un oscillo.
Avec le programme de mon premier post, les données partent bien mais la ligne RTS ne bouge pas.
Pourtant en regardant la doc VB a propos du .RTSEnable il me semblait avoir compris qu'a TRUE la ligne RTS passe a 1 et a FALSE elle passe a 0.

extrait MSDN :

SerialPort.RtsEnable Property 

<!--Content type: DocStudio. Transform: devdiv2mtps.xslt.-->
Note: This property is new in the .NET Framework version 2.0.


Gets or sets a value indicating whether the Request to Send (RTS) signal is enabled during serial communication.
0
Rejoignez-nous