Communication sur port com

Résolu
cs_SEB73460 Messages postés 259 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 5 février 2015 - 10 mai 2008 à 17:46
nasrimaher10 Messages postés 1 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 11 mai 2009 - 11 mai 2009 à 21:16
Bonsoir,

J'ai connecte mon port com1 sur une carte electronique qui comporte un microcontroleur
le role de cette carte (pour le moment) c est d'envoyer ce quelle recoit
c est à dire j'envoi le contenu d un textbox1 sur TX et ma carte me retourne la meme chose mais sur RX que j'affiche dans un textbox2, jusque la pas de probleme
ce qui ne va pas c est que dans mon  textbox2 si j'envoi "1" je recupere "49"
je dois oublier de faire une conversion quelque part je pense
Si quelqu'un à une idee .....
Merci beaucoup
A+

7 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
10 mai 2008 à 19:04
En effet ReadChar te renvoie un Integer représentant le code ASCII du caractère reçu. Il te faut utiliser la méthode Microsoft.VisualBasic.Chr pour reconvertir en un caractère.

Sinon, à la place, tu peux utiliser ReadExisting qui va lire d'un seul coup tout ce qui existe dans le buffer de reception.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
10 mai 2008 à 17:53
C'est fort probable, 49 étant le code ascii du caractère "1"

Montre nous ton code d'envoie et de reception.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_SEB73460 Messages postés 259 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 5 février 2015
10 mai 2008 à 18:03
Mon code :

        'envoi du contenu du textbox1 sur le port
        SerialPort1.Write(TextBox1.Text)

      
        While SerialPort1.BytesToRead <> 0

            'lecture du serialport et mettre le contenu dans textbox2
            TextBox2.Text = (SerialPort1.ReadChar.ToString)

        End While
0
cs_akim77 Messages postés 73 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 17 septembre 2008 4
10 mai 2008 à 18:59
TextBox2.Text = System.Convert.ToChar(SerialPort1.ReadChar)

devrait être la solution de ton problème.

Akim.
0

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

Posez votre question
cs_SEB73460 Messages postés 259 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 5 février 2015
10 mai 2008 à 19:13
comme cela ?

TextBox2.Text = System.Convert.ToChar(SerialPort1.ReadExisting)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
10 mai 2008 à 20:26
Non, soit tu utilise ReadChar qui renvoie un Integer, dans ce cas il te faut faire la conversion,

Soit tu utilise ReadExisting qui renvoie directement une string, donc là tu peux l'utiliser directement sans faire de conversion.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
nasrimaher10 Messages postés 1 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 11 mai 2009
11 mai 2009 à 21:16
'envoi du contenu du textbox1 sur le port
        SerialPort1.Write(TextBox1.Text)

    'lecture du serialport et mettre le contenu dans textbox2
            While SerialPort1.BytesToRead <> 0
                       TextBox2.Text = (SerialPort1.ReadChar.ToString)

        End While
0