mikrocontroller.net

Forum: PC-Programmierung FT232 Empfang Problem


Autor: Sabine Mühller (zizo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sabine Mühller (zizo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
hat jemand Erfharung damit? ich habe die ganze Zeit nach Fehler gesucht, 
nix gefunden!

Sabine

Autor: Gerry L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Delphi? Com? D2XXUnit?

Gerry

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.