Forum: Mikrocontroller und Digitale Elektronik C# USB Kommunikation mit STM32F407


von Philip B. (philipb)


Angehängte Dateien:

Lesenswert?

Hi Leute,


ich möchte mit C# meinem µC über USB einen simplen Zahlenwert 
übermitteln.
Hab das µC board, die Versorgung läuft auch über USB.
Habt ihr vieleicht irgendwelche Tipps? Bitte danke! :)

von Thomas W. (diddl)


Lesenswert?

Es gibt zwei Möglichkeiten, die mir spontan einfallen:


1)

Du schliesst einen USB <--> seriell Konverter an einen USART an. Die 
Lösung ist simpel und günstig. Diese Konverter bekommt man für ein paar 
Euro und man kann damit auch die Stromversorgung des Discovery 
erledigen.

Lösung 1 habe ich erfolgreich seit Monaten im Einsatz.


2)

Du programmierst den USB Anschluss des Discovery selbst. Allerdings ist 
diese Lösung sehr viel aufwendiger von der Software Entwicklung her. 
Deshalb habe ich mich fpr 1) entschieden.



Der andere USB Anschluss für das interne ST-Link ist (soviel ich weiss) 
nicht in der Lage, eine Kommunikation zum PC herzustellen.



Wenn du was fertiges zum experimentieren suchst, kann ich die Waveshare 
und myAVR empfehlen:
http://shop.myavr.de/ARM-Produktlinie/mySTM32-Board-F4D,%20Bausatz.htm?sp=article.sp.php&artID=200075
http://shop.myavr.de/index.php?sp=article.sp.php&artID=200024
http://www.ebay.at/itm/PL2303-USB-UART-Board-mini-PL-2303HX-PL-2303-USB-TO-RS232-Serial-TTL-Module-/261004970721?pt=LH_DefaultDomain_0&hash=item3cc51bcae1
http://www.ebay.at/itm/STM32F407VGT6-STM32-Cortex-M4-ARM-Development-Board-without-STM32F4DISCOVERY-/261050682608?pt=LH_DefaultDomain_0&hash=item3cc7d54cf0

von Peter (Gast)


Lesenswert?

>Habt ihr vieleicht irgendwelche Tipps? Bitte danke! :)
Ja, hab ich. Aber ich muss erst mal die zigtausend uController-Boards 
durchschauen, damit ich auch weiss, von was Du redest. Frag nochmal in 4 
Monaten.

von Ersi (cell85)


Lesenswert?

Wenn das stm32 ein VCOM laufen lässt ist das einfach.

dann erstellst du in c# ein serial port object (ist in der .net drin) 
dann kannst du schonmal auf die im buffer geladenen daten zu greifen und 
dir dein wert in einen string schreiben und entsprechend raus-parsen.
(kannst ja auf dem board dann die \r\n trennung machen damit du weist 
wann der nächste wert beginnt).

Das ist jetzt nicht das effektivste aber das einfachste.

Ich hab mal etwas ähnliches mit dem Discovery F4 gemacht, nur hab ich 
die Werte des Beschleunigungssensors in windows mit c# vizualisiert.
War ein Tag arbeit.

von Andreas S. (igel1)


Lesenswert?

Hi,

USB am STM32F4Discovery ist/war seinerzeit kein Zuckerschlecken - 
jedenfalls für einen ARM-Anfänger wie mich.

Schau mal hier für USB-Kommunikation via CDC VCP:
https://www.das-labor.org/trac/browser/microcontroller/src-stm32f4xx/serialUSB?rev=5213

... sowie die letzten beiden Beiträge hier:
https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32F4DISCOVERY/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2FSTM32F4DISCOVERY%2FHelp%20transfering%20data%20to%20PC&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580002E3D0FFCC5A9AA4A9C29C3EECB7CCDBF&currentviews=1094

Das ist zwar nicht C# sondern nur C, aber immerhin schon nahe dran :-)

Wie gesagt: USB ist kein Zuckerschlecken - wenn Du nicht einige (bis 
viele) Tage/Wochen in die USB-Übertragung investieren willst, würde ich 
zu Lösung 1 im Beitrag von Thomas Winkler raten - auch wenn's irgendwo 
widerstrebt - hat man doch einen voll USB-fähigen Prozessor vor sich 
liegen ...

Viele Grüße

Igel1

von Ersi (cell85)


Lesenswert?

Also wo ist da jetzt das Problem?

-> Discovery mit VCOM USB Firmware flashen

-> C# serial reader

- -> fertig.

Ich uploade mal mein Projekt von Damals ist allerdings in KEIL

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.