Réception de données depuis un PC et affichage sur écran LCD

trimarco232:
Bonjour,
peux-tu donner le programme en VS C++ ?

oui bien-sur le voilà :

Imports System
Imports System.IO.Ports



Public Class Form1

    Dim comPORT As String
    Dim receivedData As String = ""

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        GroupBox1.Enabled = False
        Timer1.Enabled = False
        comPORT = ""
        For Each sp As String In My.Computer.Ports.SerialPortNames
            comPort_ComboBox.Items.Add(sp)
        Next
    End Sub


    Private Sub comPort_ComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles comPort_ComboBox.SelectedIndexChanged
        If (comPort_ComboBox.SelectedItem <> "") Then
            comPORT = comPort_ComboBox.SelectedItem
        End If
    End Sub


    Private Sub connect_BTN_Click(sender As Object, e As EventArgs) Handles connect_BTN.Click
        If (connect_BTN.Text = "Connection") Then
            If (comPORT <> "") Then
                SerialPort1.Close()
                SerialPort1.PortName = comPORT
                SerialPort1.BaudRate = 9600
                SerialPort1.DataBits = 8
                SerialPort1.Parity = Parity.None
                SerialPort1.StopBits = StopBits.One
                SerialPort1.Handshake = Handshake.None
                SerialPort1.Encoding = System.Text.Encoding.Default 'very important!
                SerialPort1.ReadTimeout = 10000

                SerialPort1.Open()
                connect_BTN.Text = "Déconnecter"
                Timer1.Enabled = True
                Timer_LBL.Text = "Connecter"
            Else
                MsgBox("Select a COM port first")
            End If
        Else
            SerialPort1.Close()
            connect_BTN.Text = "Connection"
            Timer1.Enabled = False
            Timer_LBL.Text = "Déconnecter"
        End If


    End Sub


    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        receivedData = ReceiveSerialData()
        RichTextBox1.Text &= receivedData
    End Sub


    Function ReceiveSerialData() As String
        Dim Incoming As String
        Try
            Incoming = SerialPort1.ReadExisting()
            If Incoming Is Nothing Then
                Return "nothing" & vbCrLf
            Else
                Return Incoming
            End If
        Catch ex As TimeoutException
            Return "Error: Serial Port read timed out."
        End Try

    End Function



    Private Sub clear_BTN_Click(sender As Object, e As EventArgs) Handles clear_BTN.Click
        RichTextBox1.Text = ""
    End Sub

    Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
        Label3.Text = TrackBar1.Value.ToString()
        SerialPort1.Write("R" + Label3.Text + ",")
    End Sub

    Private Sub TrackBar2_Scroll(sender As Object, e As EventArgs) Handles TrackBar2.Scroll
        Label4.Text = TrackBar2.Value.ToString()
        SerialPort1.Write("S" + Label4.Text + ",")
    End Sub

    Private Sub TrackBar3_Scroll(sender As Object, e As EventArgs) Handles TrackBar3.Scroll
        Label6.Text = TrackBar3.Value.ToString()
        SerialPort1.Write("A" + Label6.Text + ",")
    End Sub

    Private Sub TrackBar4_Scroll(sender As Object, e As EventArgs) Handles TrackBar4.Scroll
        Dim Valeur As String = (TrackBar4.Value.ToString() + TextBox1.Text)
        Dim Valeur2 As String = (TrackBar4.Value.ToString() + TextBox2.Text)
        Dim Valeur3 As String = (TrackBar4.Value.ToString() + TextBox3.Text)
        SerialPort1.Write("R" + Valeur + ",")
        SerialPort1.Write("S" + Valeur2 + ",")
        SerialPort1.Write("A" + Valeur3 + ",")
    End Sub

    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
        If CheckBox1.Checked = True Then
            GroupBox1.Enabled = True
        Else
            GroupBox1.Enabled = False
        End If
    End Sub

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If Button1.Enabled = True Then
            SerialPort1.Write("Z")
        End If
    End Sub
End Class

J-M-L:
Je vois que vous avez viré l'idée du marqueur de fin
puisque la seconde ligne est en commentaire

c'est très lent sans doute parce que Serial.parseInt attend le début du message suivant (qui commence par une lettre) avant de continuer ou un timeOut de l'ordre de la seconde par défaut...

c'est pour cela qu'il vaut mieux virer cette commande et gérer la communication "à la main" vous même

J'ai fais une erreur ce n'était pas souhaité ou un oublie, mais du coup je le retire ?