www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ftdi FT_READ


Autor: Sabine Mühller (zizo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich habe ein FT4232 Chip, TX habe ich mit RX kurzgeschloßen. Ich habe 
ein Byte gesendet dann gelesen, es hat geklappt. Ich möchte jetzt 2 Byte 
senden dann lesen, das klappt gar nicht!
Für ein Byte habe ich einfach den gleichen Code mit folgende 
Veränderungen verwendet:

Dim TempStringData(1) As String           '' Empfang Buffer
FT_Status = FT_Read_String(FT_Handle0, TempStringData(0), 2, BytesRead)


Aber für zwei Byte bekmme ich falsche Werte(immer 32), kann mir bitte 
jemand helfen?

Code in Visual Basic 2008:
Dim TempStringData(2) As Char           '' Empfang Buffer

Dim strwritebuffer(2) As Char            '' Sende Buffer



'' Senden von zwei Byte
 Do

 strwritebuffer(0) = Chr(1) ''1 in erste Byte schreiben
 strwritebuffer(1) = Chr(2) ''2 in zweite Byte schreiben

 ListBox1.Items.Add(Asc(strwritebuffer(0))) ''1 Byte in ListBox anzeigen
 ListBox1.Items.Add(Asc(strwritebuffer(1))) ''2 Byte in ListBox anzeigen

 ' Write string data to device
 FT_Status = FT_Write_String(FT_Handle0, strwritebuffer, 2, 
BytesWritten)
 If FT_Status <> FT_OK Then
  Exit Sub
 End If
Loop Until (BytesWritten = 2)


'' Lesen von zwei Byte

           i = 0
Wartenaufmehr:


'Get auf number of Byte waiting to be read
 FT_Status = FT_GetQueueStatus(FT_Handle0, FT_RxQ_Bytes)
If FT_Status <> FT_OK Then
 Exit Sub
End If
i = i + 1
If i > 200000 Then
Exit Sub
End If

If FT_RxQ_Bytes < 2 Then GoTo Wartenaufmehr


TempStringData(0) = " "
TempStringData(1) = " "

 Do

 BytesRead = 0

 FT_Status = FT_Read_String(FT_Handle0, TempStringData, 2, BytesRead)

 If FT_Status <> FT_OK Then
  Exit Sub
  Else


  End If

  ListBox1.Items.Add(Asc(TempStringData(0)))
  ListBox1.Items.Add(Asc(TempStringData(1)))
Loop Until (FT_RxQ_Bytes = BytesRead)


 Loop

Autor: Sabine Mühller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich habe bis jetzt keine Lösung gefunden, der Variable BytesRead wird 
nach dem ft_read Befehl auf zwei erhöht, aber ich kann die Dasten nicht 
auslesen, ich verstehe das nicht , ich hoffe gibt jemand der mit FTDI 
erfahrung hat!

Ich möchte ganz einfach 2 Byte aus dem RXBuffer auslesen.
kann mir bitte jemand helfen?

Vielen Dank
S.

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.