Hi, ich habe ein FT232 mit ein Pic16F88 verbunden, ich sende Daten mit Serielle Schnittstelle von der FTDI, der PIC kopiert die Daten auf der TXD und sendet er zurück. Das Senden von PC und Zurücksende von PIC klappt gut, mit Oscilloskope habe ich die Daten auf TXD und RXD kontrolliert. Das Problem ist ich kann von strReadBuffer nix auslesen. Ich habe der FT_RxBytes kontrolliert, der wird auf 1 erhöht. Kann mir jemand bitte helfen? Do While x < 100 x = x + 1 i = 0 zu = 1 strWriteBuffer = Chr(zu) lngBytesWritten = 0 If FT_Write(lngHandle, strWriteBuffer, 1, lngBytesWritten) <> FT_OK Then ListBox2.Items.Add("Startsignal war fehlerhaft") End If ' Anzahl der Bytes in der Warteschlange lesen flTimedout = False flFatalError = False ' Get number of bytes waiting to be read If FT_GetQueueStatus(lngHandle, FT_RxBytes) <> FT_OK Then ListBox1.Items.Add("Status war fehlerhaft") End If ' Warte bis Anzahl der Bytes vollständig ist ' (6 Bytes werden erwartet) WarteAufMehr: ' immer eine Sicherheitsschleife zum Abbruch einfügen ' falls nie mehr etwas zurück kommen sollte! ftStatus = FT_GetStatus(lngHandle, FT_RxBytes, FT_TxBytes, lngevent_get_stat) If ftStatus = FT_OK Then Else If ftStatus = FT_IO_ERROR Then ListBox1.Items.Add("Status IO Fehler") GoTo Abbrechen End If End If i = i + 1 If i > 4000 Then ListBox1.Items.Add("Lesen abgebrochen") GoTo Abbrechen End If ListBox1.Items.Add("Anzahl" & FT_RxBytes) If FT_RxBytes < 1 Then GoTo WarteAufMehr ' 6 Bytes (Anz. in FT_RxBytes) nach strReadbuffer einlesen ' mögliche Fehler berücksichtigen flTimedout = False flFatalError = False lngTotalBytesRead = 0 strReadBuffer = "" Do lngBytesRead = 0 ftStatus = FT_Read(lngHandle, strReadBuffer, FT_RxBytes, lngBytesRead) If (ftStatus = FT_OK) Or (ftStatus = FT_IO_ERROR) Then If lngBytesRead > 0 Then lngTotalBytesRead = lngTotalBytesRead + lngBytesRead Else flTimedout = True End If Else flFatalError = True End If Loop Until (lngTotalBytesRead = FT_RxBytes) Or _ (flTimedout = True) Or _ (flFatalError = True) ' Daten in strReadBuffer in Loggerlist anzeigen ' oder Fehlermeldungen anzeigen If (flTimedout = False) And (flFatalError = False) Then empfang = Val(strReadBuffer) ListBox1.Items.Add("Empf" & strReadBuffer) flFailed = False ElseIf flTimedout = True Then ListBox1.Items.Add("FT_Read timeout Fehler: = " & ftStatus) Else ListBox1.Items.Add("FT_Read Fehler = " & ftStatus) End If Loop
Hi, hat jemand Erfharung damit? ich habe die ganze Zeit nach Fehler gesucht, nix gefunden! Sabine
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.