Grazie Oregon.
Ho apportato le modifiche necessarie: la comunicazione avviene correttamente sfruttando l'evento DataReceived e la TextBox1 si aggiorna continuativamente.
Tuttavia per rendere il ciclo infinito mi sono servito di un timer la cui proprietà Interval è impostata a 1 (ms) e che viene avviato nel momento in cui la TextBox viene aggiornata (vedere codice sottostante):
Vorrei evitare l'uso del timer (ad esempio facendo una chiamata diretta alla parte di codice in cui viene inviata la stringa che richiede il byte al dispositivo, creando così un loop infinito). Come dovrei sostituire quindi la linea di codice "Timer1.Start()"?codice:... Public Sub updateTextBox() With TextBox1 .AppendText(SerialPort1.ReadExisting) End With Timer1.Start() End Sub ...