STM32F4 Discovery Usb

Gast #3024360
Lesenswert?

Hallo,

hab ein paar Fragen an euch.
Besitze das Stm32 Discovery Board und möchte mit deinem
einem USB-Schnittstelle zum PC realisieren.
In der Demo App läuft bereits ein USB HID demo
ich benötige aber eine USB Verbindung um Daten auszutauschen.
Weis jemand dazu den Code?

Was gibt es von Seiten Windows - wie lese ich die daten dann aus?

Danke!
Liebe Grüße
Persönliche Seite #3024366
Lesenswert?

Kerstin schrieb:
> ich benötige aber eine USB Verbindung um Daten auszutauschen

Das wird immer gemacht, wenn eine Verbindung besteht. Die Frage ist, was 
für Daten von wo und wohin und am besten noch wieviel mit welcher 
Übertragungsrate.

Möchtest du das Discovery als Massenspeicher erkennen lassen? SD-Karte 
dran? Bitte ausführlicher das Problem beschreiben.
Gast #3024572
Lesenswert?

Ja, das is ja auch mein Plan nur bekomme ich Kompilierfehler wenn ich 
die USB Bibliothek verwenden möchte.

USB_OTG_CORE_HANDLE       USB_OTG_Core_dev;
USBH_HOST                 USB_HOST;

USBD_Init(&USB_OTG_Core,
            USB_OTG_HS_CORE_ID,
            &USR_Host,
            &USBD_MSC_cb,
            &USR_MSC_cb);


hab die standardlib von IAR Workbench mit dem STM32F4 Discovery example 
geladen.
Persönliche Seite #3024586
Lesenswert?

hmm...die IDE kenne ich jetzt nicht, scheint aber einen eigenen Compiler 
zu verwenden und nicht die gnu-arm compiler wie z.B. Atollic oder 
Coocox.

Ich kann dir eigentlich nur Coocox ans Herz legen. Das Beispiel von oben 
funktioniert damit problemlos und dürfte deine Probleme lösen. Wenn du 
von der IAR Workbench nicht weg kannst, bleibt dir wohl nur eins: Selber 
umstricken!
Gast #3025719
Lesenswert?

Hallo,

ich bin nun etwas weiter.
Ich habe nun die Firmware für das STM32F4 Discovery heruntergeladen

im Ordner 
STM32F4-Discovery_FW_V1.1.0\Libraries\STM32_USB_Device_Library\Class\cdc

befinden sich die cdc files.

Dann habe ich ein template Projekt in der IAR Workbench IDE
erstellt und folgenden code eingebaut:

http://mcu.cz/comment-n2800.html

danach habe ich die vcp treiber 64 bit und 32 bit installiert
benutze win 7 64 bit. jedoch eine 32 bit IDE

Der Code baut nun und linkt.
Ich habe folgende Präprozessor flags gesetzt:

USE_STDPERIPH_DRIVER
STM32F4XX
USE_ULPI_PHY
USB_OTG_FS_CORE
USE_USB_OTG_FS

bei den drei
USE_ULPI_PHY
USB_OTG_FS_CORE
USE_USB_OTG_FS
weis ich nicht was sie tun. weis das jemand von euch?

Sobald ich den USB Stecker in meinen PC einführe, erscheint folgende 
Meldung( Anhang) was kann ich nun tun ??

Bitte helft mir.
Angehängte Dateien:
Gast #3025749
Lesenswert?

Hallo,

also ich hab es unter CoIDE so gemacht:

1.) den Ordner usb_cdc aus dem Projekt [CoIDE]_USB_CDC_Example von oben 
in mein Projekt kopiert
2.) dann einen Ordner STM32F4Discovery im Projekt anlegen und da die 
Ordner Libraries/inc und Libraries/src rein kopiert (auch aus dem 
Projekt von oben)
3.) dann die usb_cdc_vcp.h eingebunden
4.) zu den Include-Pathes der IDE folgende hinzugefügt:
4a.) usb_cdc/cdc
4b.) usb_cdc/stm32_usb_device_library/class/cdc/inc
4c.) usb_cdc/stm32_usb_device_library/core/inc
4d.) usb_cdc/stm32_usb_otg_driver/inc
4e.) stm32f4discovery/inc
5.) dann den Code in main geschrieben.

Hoffe das hilft euch ein bisschen weiter. :)

wieso beide treiber installiert? wenn du win 7 64bit hast reicht doch 
der 64bit treiber. der IDE dürfte das egal sein.

Moritz
Angehängte Dateien:
Gast #3026003
Lesenswert?

Hi Danke Dir, nun läuft alles (USB) mit dem CooCox
nun hab ich den adc eingebunden die toolchain eingestellt und bekomme 
soclh eine Fehlermeldung nach dem build?

GCC HOME: C:\Program Files (x86)\GNU Tools ARM Embedded\4.7 2012q4\bin
compile:
    [mkdir] Skipping 
D:\Kerstin\Desktop\USB_VCP_01.02_13\USB_VCP\USB_VCP\Debug\bin because it 
already exists.
    [mkdir] Skipping 
D:\Kerstin\Desktop\USB_VCP_01.02_13\USB_VCP\USB_VCP\Debug\obj because it 
already exists.

BUILD FAILED
Output filename conflict: stm32f4xx_rcc.o would be produced from 
D:\Kerstin\Desktop\USB_VCP_01.02_13\USB_VCP\cmsis_lib\source\stm32f4xx_r 
cc.c  and stm32f4xx_rcc.c
Total time: 0 seconds


Was kann ich da tun? Hab die aktuelle Version 1.7.0
Gast #3026167
Lesenswert?

Hallo,

hast du vllt. in der CoIDE unter Responsibility die Lib RCC eingebunden? 
Nimm die da mal raus, dann sollte es funktionieren. Die kommplete Stdlib 
hab ich in mein Projekt reinkopiert.

Moritz
Gast #3028006
Lesenswert?

Hallo,

die STM32F4 Std-Lib habe ich komplett in das Projekt reinkopiert. Das 
ist der Ordner STM32F4xx_StdPeriph_Driver. Wenn mann jetzt noch dazu 
unter Repository RCC, GPIO und ADC auswählt dann sind die Dateien 
doppelt vorhanden und es gibt den Fehler.
Wenn du die Häkchen wieder weg machst musst du unter Configuration -> 
Compile -> Defined Symbols das Symbmbol USE_STDPERIPH_DRIVER wieder 
hinzufügen, da die CoIDE das entfernt.

Moritz

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren