2011-03-18 5 views
1

J'ai un Arduino branché sur le PC et j'aimerais en lire le port série. J'ai lu le port série dans Visual Basic avec com.Readline, mais il ne sera pas tout lire. Il perd environ 2-3 lignes qui ont été envoyées sur le port série au code Visual Basic. Ils sont "perdus".Port série en code, Visual Basic 2010

Si je vais même avec des taux plus élevés (57600 bauds), il perd des lignes encore plus ...

Je l'utiliser pour lire:

Private Sub com9_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles com.DataReceived 
     Dim returnStr As String 
     returnStr = com.ReadLine 
     ReceiveSerialData(returnStr) 
End Sub 

Le programme est trop lent pour obtenir toutes les données ou quel est le problème?

Répondre

1

SerialPort.DataReceived Event a un commentaire intéressant qui peut vous orienter dans la bonne direction:

L'événement DataReceived n'est pas garanti à recueillir pour chaque octet reçu. Utilisez la propriété BytesToRead pour déterminer combien de données reste à lire dans le tampon.

Notez que la page (s) mentionne aussi le fait que le comportement de mise en mémoire tampon complique les choses ...