Communication sur port com [Résolu]

Signaler
Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
5 février 2015
-
Messages postés
1
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
11 mai 2009
-
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

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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
Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
5 février 2015

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
Messages postés
73
Date d'inscription
lundi 12 avril 2004
Statut
Membre
Dernière intervention
17 septembre 2008
4
TextBox2.Text = System.Convert.ToChar(SerialPort1.ReadChar)

devrait être la solution de ton problème.

Akim.
Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
5 février 2015

comme cela ?

TextBox2.Text = System.Convert.ToChar(SerialPort1.ReadExisting)
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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
Messages postés
1
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
11 mai 2009

'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