Bonjour à tous,
J'ai un capteur de température connecté à un microcontrôleur, le programme m'envoie une variable codée sur 8 bits. Bref un nombre entre 0 et 255
Je souhaite recevoir le contenu de cette variable dans un label. J'ai bien trouvé un code et essayé de l'adapter...
Pour les essais je mets un potar sur l'entrée du micro, ai testé le programme en simulation, il fonctionne. Le potentiomètre délivre une valeur allant de 0 à 255..
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
47
48
49
50
51
52
53
54
55
 
Imports System.IO
Imports Strings = Microsoft.VisualBasic 
 
Public Class Form1
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) 
    Dim WithEvents serialPort As New IO.Ports.SerialPort 
 
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Timer1.Enabled = True
        Timer1.Interval = 5000
        Array.Clear(RegistreMicro, 0, 2) 'effacer le tableau, j'ai mis 2, sans savoir...
    End Sub
 
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Call SerialTxRx() ' talk to picaxe
    End Sub
 
    Sub SerialTxRx()
        Dim LabelContenu As String
        Dim Donnee(0 To 1) As Byte '1donnée qui doit être reçue?
        Label1.Text = "" 
 
        If serialPort.IsOpen Then
            serialPort.Close() 
        End If
        Try
            With serialPort
                .PortName = "COM3" 
                .BaudRate = 4800 
                .Parity = IO.Ports.Parity.None 
                .DataBits = 8 
                .StopBits = IO.Ports.StopBits.One
                .ReadTimeout = 1000 
                .Open() 
                .DiscardInBuffer() 
                Call Sleep(500) 
'C'est ici que je souhaiterai lire les données
'La méthode Read?
'.Read(buffer, offset, count)
'buffer : Tableau d'octets dans lequel l'entrée doit être écrite.
'offset : Offset dans le tableau de la mémoire tampon à partir duquel 'commencer l'écriture.
'count : Nombre d'octets à lire
'.Read(Donnee, 0, 1) ?
 
                .Close() ' close the serial port
            End With
'Ici l'affichage ?        
'LabelContenu = Str(Donnee(1)) 
'Label1.Text = LabelContenu 
 
            Label1.Text = "Timeout" 
        End Try
    End Sub
End Class
Ayant pas mal trifouillé depuis 2 jours, je me laisse tenté par un forum, là je ne sais plus quoi faire... des fois cela ne m'affiche rien : timeout ou alors juste une valeur et une seule "240"
Bref, si vous pouviez m'éclairer...
Merci
lio59