Problema veloce con porta seriale

mercoledì 12 settembre 2007 - 07.52

lordwaizard Profilo | Senior Member

Se connetto hyper terminal alla porta com e scrivo qualsiasi cosa ottengo come risposta la stessa cosa.

ES
SCRIVO -> PIPPO
RITORNA -> PIPPO

E quindi il sistema funziona correttamente.

Però se uso le seguenti righe di codice la macchina si blocca, sicuramente ho sbagliato gli array.

Try
Dim arr(50) As Byte

ReDim arr(0)


With SerialPort
.PortName = "COM7"
.BaudRate = 9600
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
.ReadTimeout = 100
.WriteTimeout = 100
End With

SerialPort.Open()

SerialPort.Write("pippo", 0, 5)

SerialPort.Read(arr, arr.Length - 1, 1)
ReDim Preserve arr(arr.Length)


' MsgBox(arr(0))

SerialPort.Close()

Catch ex As Exception
MsgBox(ex.ToString)
End Try


Dove sbaglio?

Ciciu Profilo | Senior Member

Ciao.
Dove si blocca esattamente ?

Il fatto che Hyperterminal Ti restituisca la stessa stringa che hai scritto, credo sia solo dovuto al fatto che è abilitato l'ECHO. Se non hai nulla collegato alla porta seriale, è alquanto improbabile che Ti restituisca quello che gli mandi...

Posso supporre che il Tuo programma si blocchi in fase di lettura (SerialPort.Read) ????

Per provare, potresTi collegare un qualunque modem alla Tua porta seriale, provando a mandargli le stringhe di interrogazione AT. Per esempio, prova a mandare al modem il comando AT&F0 : dovrebbe restituirTi la parametrizzazione attuale del modem

Ciao - FabioG

Fabio G

lordwaizard Profilo | Senior Member

Che restituisca i dati è corretto, in sostanza è come se cortocircuitassi il pin2 e il pin3 della porta seriale.

Il problema è sul read, infatti appena legge mi appare una schermata blu con scritto IRQ_NOT_LESS.... (solo con il mio programma con hyper legge correttamente)

Sbaglio a leggere il buffer?

Grazie
Davide
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5