STM32 USB-FS-Device Lib

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

STM32 USB-FS-Device Lib

Mit der STM32 USB-FS-Device Lib stellt ST C-Funktionen zur Benutzung der USB-Schnittstelle der STM32 µC zur Verfügung.

Sie kann zusammen mit Beipielimplemtationen verschiedener USB-geräteklassen hier bei ST kostenlos heruntergeladen werden: Download.

Eine Beschschreibung findet sich hier.


Virtual COM Port

Für die allgemeine Kommunikation mit einem PC wird für die meisten Projekte ein Virtual COMPORT die geeignete Geräteklasse sein. Auf PC Seite erscheint dabei nach einstecken des STM32 in den USB Port ein weiterer COM Port im Gerätemanager, der von Applikationen genauso wie jeder reale COM Port verwendet werden kann. Wie der Zugriff auf µC-Seite aussieht sehen wir uns weiter unten an.

Die Beispielimplemtierung

ST liefert eine Beispielimplemetierung für den einen Virtual Comport mit der USB-Lib mit. Um diese Nutzen zu können, muss das verwendete Evalboard einmal mit dem USB und einmal mit einem echten RS232 Verbunden sein, da man zum Test Daten zwischen zwei Terminalprogrammen hin- und herschicken kann, eines mit dem Virtual COM Port und das andere mit dem "echten" COM Port verbunden.

Da ich derzeit keinen weiteren COM Port zur verfügung hatte und ich gerne ein Beispiel wollte dass rein auf den USB-Port konzentriert ist, habe ich das Beispiel etwas modifiziert. In meinem Beispielprogramm sind alle USART Anteile entfernt, ebenso alle #ifdefs die sich auf ein bestimmtes EVAL-Board bzw. auf den STM32 in der Connectivity Line beziehen, der einen USB-OnTheGo besitzt. Dadurch ist der Code jetzt deutlich leichter zu überschauen (wenn ihr unbedingt einen STM32 aus der Connectivity Line nehmen wolltm, dann quält euch durch das Orginalbeispiel. In der jetztigen Version schickt der µC jede Zeichenkette die ihm vom PC geschickt wird wieder an den selben COM Port zurück, aber in umgekehrter Zeichenfolge. (Zum Test empfehle ich HTerm Zumindest die in Crossworks entahlteten Terminal Emulation arbeitet nicht korrekt, daher besser nicht verwenden)




--Escamoteur 07:39, 27. Apr. 2010 (UTC)