Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VB2010] Ricerca porta COM

    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.

  2. #2
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    codice:
     SerialPort2.PortName = sp
                            SerialPort2.Open()
                            SerialPort2.Write("h")
                            SerialPort2.ReadLine()
                            test = SerialPort2.ReadLine()
    Qui non chiudi mai la porta seriale.

  3. #3
    E' vero,non chiudevo la porta.Ora funziona!Grazie 1000!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.