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:
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"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
Per la mia poca esperienza mi sembra che tutto sia corretto ....
Qualcuno sarebbe cosi' gentile da spiegarmi dove sto' sbagliando?
Grazie in anticipo.

Rispondi quotando