Port COM problème de réception?

Chrisgrenier 5 Messages postés vendredi 24 juillet 2015Date d'inscription 8 mars 2016 Dernière intervention - 14 août 2015 à 15:15
Bonjour à tous,

Je suis nouveau dans la programmation vb.net et j'ai débuté un projet qui consiste à contrôler un PIC microcontrôleur via USB. Jusqu'à maintenant mon code fonctionne bien pour la transmission mais mon problème est la réception.

J'aurais vraiment besoin d'aide à ce niveau!

(Voir le code vb)

Merci

Chris

Public Class Form1
    Dim myPort As Array


    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'A l'ouverture de form1, automatiquement tous les ports série dans le système sont détecter et sont afficher dans le cmb Port Combobox
        myPort = IO.Ports.SerialPort.GetPortNames() 'Obtiens tous les ports COM disponibles
        cmbBaud.Items.Add(9600) 'Affiche dans le cmbBaud ComboBox les Baud rates
        cmbBaud.Items.Add(19200)
        cmbBaud.Items.Add(38400)
        cmbBaud.Items.Add(57600)
        cmbBaud.Items.Add(115200)

        For i = 0 To UBound(myPort)
            cmbPort.Items.Add(myPort(i))
        Next

        cmbPort.Text = cmbPort.Items.Item(0)
        cmbBaud.Text = cmbBaud.Items.Item(0)
        Panel1.BackColor = Color.Red
        Panel2.BackColor = Color.Red
        Panel3.BackColor = Color.Black
        Panel4.BackColor = Color.Black
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            SerialPort1.Parity = IO.Ports.Parity.None
            SerialPort1.StopBits = IO.Ports.StopBits.One
            SerialPort1.DataBits = 8

            SerialPort1.Open()                                      'Connect to COM Port
            Button1.Enabled = False
            Button2.Enabled = True
            GroupBox2.Enabled = True
            GroupBox3.Enabled = True
            GroupBox4.Enabled = True
            ToolStripStatusLabel1.Text = ("Connect to COM...")

        Catch ex As Exception
            Console.WriteLine(ex.Message)
            MsgBox("COM Not found", MsgBoxStyle.Exclamation)       'Affiche le message COM non found
        End Try
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        'Fermeture du port COM et affiche le message Disconnect.. dans le Status Label1
        SerialPort1.Close()
        Button1.Enabled = True
        Button2.Enabled = False
        GroupBox2.Enabled = False
        GroupBox3.Enabled = False
        GroupBox4.Enabled = False
        ToolStripStatusLabel1.Text = ("Disconnect...")
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim data(3) As Byte           'Transmet trois bytes
        data(0) = 255                 'Data pour entrer en mode USB Comand
        data(1) = 1                   'Data pour sélectionner les LED's 1-8, dans ce cas LED1
        data(2) = 1                   '1 pour activer ON la LED1, ou 0 pour la désactiver OFF
        SerialPort1.Write(data, 0, 3) 'écrire les données sur le port série

        Panel1.BackColor = Color.Lime 'affiche dans le Panel2 la couleur Lime

    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim data(3) As Byte           'Transmet trois bytes
        data(0) = 255                 'Data pour entrer en mode USB Comand
        data(1) = 1                   'Data pour sélectionner les LED's 1-8, dans ce cas LED1
        data(2) = 0                   '1 pour activer ON la LED1, ou 0 pour la désactiver OFF
        SerialPort1.Write(data, 0, 3) 'écrire les données sur le port série
        Panel1.BackColor = Color.Red  'affiche dans le Panel2 la couleur rouge

    End Sub

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        Dim data(3) As Byte           'Transmet trois bytes
        data(0) = 255                 'Data pour entrer en mode USB Comand
        data(1) = 2                   'Data pour sélectionner les LED's 1-8, dans ce cas LED2
        data(2) = 1                   '1 pour activer ON la LED2, ou 0 pour la désactiver OFF
        SerialPort1.Write(data, 0, 3) 'écrire les données sur le port série
        Panel2.BackColor = Color.Lime 'affiche dans le Panel2 la couleur Lime

    End Sub

    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        Dim data(3) As Byte           'Transmet trois bytes 
        data(0) = 255                 'Data pour entrer en mode USB Comand
        data(1) = 2                   'Data pour sélectionner les LED's 1-8, dans ce cas LED2
        data(2) = 0                   '2 pour activer ON la LED2, ou 0 pour la désactiver OFF
        SerialPort1.Write(data, 0, 3) 'écrire les données sur le port série
        Panel2.BackColor = Color.Red  'affiche dans le Panel2 la couleur rouge

    End Sub

    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
        Dim data(3) As Byte           'Transmet trois bytes
        data(0) = 255                 'Data pour entrer dans le mode USB Comand
        data(1) = 3                   'Data pour sélectionner le port An0
        data(2) = 4                   'lire l'état
        SerialPort1.Write(data, 0, 3) 'écrire les données sur le port série

        'SerialPort1.Read(data, 0, 3)

        For i As Integer = 0 To 2 Step 1
            data(i) = SerialPort1.ReadByte()
        Next


        If data(2) = 1 Then

            Panel3.BackColor = Color.Lime
            Panel4.BackColor = Color.Lime

        Else
            Panel3.BackColor = Color.Red
            Panel4.BackColor = Color.Black
        End If

    End Sub
End Class


EDIT: Ajout de la coloration syntaxique.
Afficher la suite 

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.