Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    février 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : février 2017
    Messages : 29
    Points : 5
    Points
    5

    Par défaut Programme VB se bloque (Com série)

    Bonjour

    Je réalise un programme VB qui permet de communiquer via le port série avec un arduino.
    J'arrive a envoyer des info du PC vers l'arduino mais pas l'inverse.

    Il n'y a aucune erreur lors de la compilation des 2 programmes. Je suis sur à 100% que le programme arduino est bon. Mais je n'arrive pas à trouver le bug sur le programme du PC

    Le programme VB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Public Class Communication
        Dim Texte As String
        Private Sub Communication_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            btnOpenComPort.Visible = False
            GroupBoxTestCOM.Visible = False
        End Sub
     
        Private Sub CheckportCOM3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckportCOM3.CheckedChanged
            If CheckportCOM3.Checked = True Then
                SerialPort1.PortName = "COM3"
                CheckportCOM5.Checked = False
                btnOpenComPort.Visible = True
            End If
        End Sub
     
        Private Sub CheckportCOM5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckportCOM5.CheckedChanged
            If CheckportCOM5.Checked = True Then
                SerialPort1.PortName = "COM5"
                CheckportCOM3.Checked = False
                btnOpenComPort.Visible = True
            End If
        End Sub
     
        Private Sub btnOpenComPort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenComPort.Click
            SerialPort1.Open()
            If SerialPort1.IsOpen Then
                GroupBoxTestCOM.Visible = True
            End If
        End Sub
     
        Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
            Texte = SerialPort1.ReadLine
            TextTest.Text = Texte
        End Sub
     
        'Méthode appelée quand la fenetre est fermée et qu'on quitte l'application
        Private Sub Communication_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles Me.FormClosing
            'Si le port série est toujours ouvert
            If SerialPort1.IsOpen Then
                'Alors on le ferme
                SerialPort1.Close()
            End If
            'On détruit l'instance du port série
            SerialPort1.Dispose()
        End Sub
    End Class
    Lorsque je clic sur le bouton Test, un texte doit s'afficher dans une textbox.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
            Texte = SerialPort1.ReadLine
            TextTest.Text = Texte
        End Sub
    Mais le programme ce bloc, plus rien de répond. Je suis obligé de stopper le débogage pour fermer l'application.
    Le débogueur ne me retourne aucune erreur.

    Une idée ?

    Cordialement

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    avril 2007
    Messages
    13 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : avril 2007
    Messages : 13 217
    Points : 23 529
    Points
    23 529

    Par défaut

    au lieu de stopper le programme tu peux cliquer sur pause, ca te montrera où le programme en est dans l'exécution
    et à priori il sera sur ReadLine qui est une instruction bloquante tant qu'elle ne recoit pas chr 13 puis chr 10
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    février 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : février 2017
    Messages : 29
    Points : 5
    Points
    5

    Par défaut

    En effet le programme reste bloqué sur Readline

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/05/2008, 14h08
  2. Un guide de bonnes pratiques pour programmer avec le port COM ?
    Par Chekov dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/03/2008, 17h25
  3. Réponses: 4
    Dernier message: 04/01/2008, 11h44
  4. Réponses: 1
    Dernier message: 14/05/2007, 09h44
  5. Réponses: 12
    Dernier message: 21/02/2006, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo