Salve a tutti,
E' da circa un mese che ho cominciato a giocherellare con il VB2010.La mia passione è l'elettronica ed ora ho deciso di abbinare quest'ultima alla programmazione.
Dopo aver consultato qualche tutorial ho deciso di scrivere i miei primi programmini per far dialogare qualche schedina elettronica dotata di microcontrollore con il pc.
Ora stavo provando a creare una piccola applicazione dove al premere di un pulsante venisse fatto un controllo delle porte COM libere per trovare la porta a cui ho collegato la mia schedina.
Ecco il codice da me usato:
codice:
 
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        If trovatoporta = False Then

            For Each sp As String In My.Computer.Ports.SerialPortNames
                Dim test As String = "0"

                If Not SerialPort2.IsOpen Then

                    Try
                        SerialPort2.PortName = sp
                        SerialPort2.Open()
                        SerialPort2.Write("h")
                        SerialPort2.ReadLine()
                        test = SerialPort2.ReadLine()
                        If test = ("****************************************************" & vbCr) Then
                            nomeporta = sp
                            trovatoporta = True
                            test = "0"
                        End If
                    Catch ex As TimeoutException
                        SerialPort2.Close()

                    End Try

                End If
            Next sp
            If Not trovatoporta = True Then
                MsgBox("Nessuna porta di comunicazione COM attiva ", MsgBoxStyle.Exclamation + vbOKOnly, "Attenzione!")
                trovatoporta = False

            Else
                MsgBox("La porta attiva è la " & (nomeporta), MsgBoxStyle.Exclamation + vbOKOnly, "Attenzione!")
                ComboBox1.SelectedItem = nomeporta
                My.Settings.Porta = nomeporta
                trovatoporta = False
              
            End If

        End If
    End Sub
Quello che non riesco a capire è perche' questo codice funziona solo quando premo una volta il relativo pulsante, dopodiche' mi da sempre "Nessuna porta di comunicazione trovata"

Per la mia poca esperienza mi sembra che tutto sia corretto ....
Qualcuno sarebbe cosi' gentile da spiegarmi dove sto' sbagliando?
Grazie in anticipo.