Forum: Mikrocontroller und Digitale Elektronik FTDI 232: nach neuem Anschließen ist alles anders


von Stefan Walter (Gast)


Lesenswert?

Hallo miteinander

Ich habe einen PIC18F452 und einen FTDI FT232BM per USART verbunden.
Dann habe ich ein Programm geschrieben, mit dem der PIC18 Daten über
den USART sendet. Diese werden dann an meine USB-Schnittstelle
weitergereicht. Ein Visual Studio .Net C++ Programm nimmt diese Daten
entgegen und zeigt mir:
1. Die empfangenen Daten ( char RxBytes [256])
2. Die Anzahl der empfangenen Bytes (DWORD BytesReceived)

Soweit hat alles geklappt.

Wenn ich den FTDI allerdings von meinem PC abziehe und neu anstecke
funktioiert nichts mehr!
Ich kann zwar noch die Anzahl der empfangenen Bytes sehen, der Inhalt
ist aber nichtmehr vorhanden.

Muss ich irgendwelche Devices oder Endpunkte definieren?

von Wolfram (Gast)


Lesenswert?

wenn du das gerät abziehst und wieder dransteckst ist es ein neues
Gerät. Du greifst eigentlich auf ein ungültiges Handle zu.
Wenn du den Fehlerstatus abfragst, sollte dies eigentlich auffallen.

von Stefan Walter (Gast)


Lesenswert?

Ich bin in dem Bereich ganz neu. Das ist meine Augabe im Praxissemester
und hab innerhalb der letzten 2,5 Wochen von fast 0 bis hierher
gearbeitet, was eingentlich sehr gut ist...

Was kann ich jetzt mit deiner Aussage anfangen? Wie stelle ich das
statisch ein, so dass ich den Controller abziehen und einstecken kann
ohne diesen Feher hervorzurufen?

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

dein C++ Programm öffnet also die Schnittstelle (wie es das auch immer
macht W32-API, .NET-Klasse ...) und ließt Daten da raus. Dann ziehst du
das Gerät ab und steckst es wieder an während die Schnittstelle noch
offen ist? Das kann so nicht funktionieren da in dem Moment in dem du
das Gerät entfernst deiner im C++ Programm geöffneten Schnittstelle
sämtliche Grundlage (ein Stück Hardware und die passenden Treiber)
fehlt. Du mußt also die Schnittstelle mit einem passenden API-Aufruf
schließen und neu öffnen wenn ein solches Ereignis eingetreten ist. Wie
du das machst und wie du mitbekommst das da was nicht stimmt hängt von
der Art wie du die Schnittstelle ansprichst ab.

Matthias

von Stefan Walter (Gast)


Lesenswert?

Da hab ich mich wohl falsch ausgedrückt.

Ich zieh das Gerät nicht wärend der Übertragung oder gar wärend das
Ausleseprogramm läuft ab. Das Programm ist geschlossen, der PIC sendet
nichts, alles Ruht, Rechenr läuft.
Jetzt zieh ich den Stecker (ohne Anwendung, die den FTDI anspricht,
liest, ...). Dann steck ich ihn neu ein: Das Programm wird neu
gestartet und funktioniert nicht mehr.
Dass das, was du angenommen hast nicht funktioniert ist mir klar...
danke aber trotzdem für den Vermutung

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
Noch kein Account? Hier anmelden.