Hallo,
ich habe eine "altes" Flightcontrol-Board eines Quadcopters, dass ich
gerne zweckentfremden will.
Es besitzt einen STM32F405 incl. USB Buchse.
Ich habe per DfuSe-Kit erst per "DFU File Manager" aus der generierten
.hex eine .dfu gebaut und diese dann mit "DfuSe Demo" geflasht.
Leider passiert auf dem Board nichts (es sollte nur eine LED blinken).
Das Board ist ein OpenPilot Revolution
(http://opwiki.readthedocs.io/en/latest/user_manual/revo/revo.html#diy-board)
ganz unten sind auch die Schematics per Download.
Unter anderen sind da die beiden LEDs zu erkennen an den Ports "PB4" und
"PB5".
Jedoch passiert bei meinem Beispiel-Code nichts....
Als erstes würde ich mir einen ST-Link Adapter besorgen.
SWD an CONN6 ist heraus geführt.
Dann kommt es darauf an wie du entwickeln möchtest.
Ich bevorzuge CubeMX und SW4STM32. Nur als Tipp, andere sehen das anders
;)
Ja darüber hab ich auch schon nachgedacht. Aber eigentlich ist doch der
DFU Modus da um zu flashen, und mein Projekt ist auch nicht besonders
umfangreich, daher würde ich gern das nutzen was schon vor mir liegt.
Kannst du machen, merkst aber nicht wenn etwas nicht stimmt.
Z.B.: wenn er direkt im Error landet.
So ist es an dir ein funktionsfähiges Programm zu erstellen.
Ich könnte anbieten eine Blinky hex zum Test zu erstellen.
Das wäre super, danke!
Dann weiß ich ob mein Fehler in der Toolchain liegt oder im Code.
Ja, ich arbeite sonst auch mit Debuggern, der Vorteil ist da nicht zu
bestreiten. Nur habe ich gerade keinen für die STM32er hier.
Wow, es geht. Es blinkt abwechseld rot/blau :)
Vielen, vielen dank!
Dann liegt mein Fehler in meinem Code irgendwo. :/
Aber es ist schon Mal gut zu wissen dass es flashen geht.
Sehr schön.
Jetzt musst du entscheiden ob du alles "zu Fuß" machen willst, oder Libs
und HAL zu Hilfe nimmst.
Ohne Debugger würde ich letzteres bevorzugen.
Hast ja gesehen wie einfach das geht ;)
Japp, hab eigentlich libs.
Ist mein erstes STM32 Projekt, daher wollte ich es mir einfach machen.
Habe die CooCox IDE geladen, aber die ist ja mal Grütze. Jedoch gabs da
fertige libs zum reinladen, aber scheinbar nicht wirklich
funktionsfähig... :(
Meinen Vorschlag kennst du.
Hatte noch keine Probleme mit den aktuellen Versionen, da beides von ST
unterstützt wird und inzwischen recht ausgereift scheint.
Ja, ST-Link ist bestellt :) Wahrscheinlich bin ich so ungeduldig, dass
ich es vorher schon versuche zu fixen.
Aber danke nochmal.
Gibts eigentlich für die STM32 dann eine bessere IDE als dieses CooCox?
Diese IDEs sind ja depremierender als alles was ich bis jetzt gesehen
habe.
Ich versuche jetzt seit gestern irgendwie einen USB VCP Stack zum laufen
zu bekommen, aber CooCox ist buggy, TrueStudio startet nicht und AC6
WorkBench ignoriert alle Dateien in anderen Ordnern außer /inc und /src.
Davon ab habe ich keine lauffähige Version mit nur einem einfachen VCP
Stack hinbekommen, selbst das von STMCubeMX generierte erzeugt
durchgehend Fehler... Frustrierendes Programmieren...
Hab die Toolchain auf einem anderen Laptop installiert, da compiliert es
das STM32CubeMX Projekt auf Anhieb. Irgendwie hat mein PC ein
Konfig-Fehler. Egal, Problem für später.
Schlimmer ist das Problem, dass ich den VCP Stack nicht zum laufen zu
bekommen auf dem Board.
Nach langem versuchen und trial-and-error habe ich mal nach einem Guide
gesucht und diesen gefunden:
http://microtechnics.ru/en/stm32cube-and-usb-virtual-com-port-2/
Er ist zwar für ein anderen STM32, aber auch ein F4. Macht eigentlich
fast alles so wie ich vorher auch, außer ein SYSCLK
Ich habe alles soweit genau so, abgesehen von der fehlenden VBUS
Leitung, daher dort auch kein Harken. Dafür noch eine LED hinzugefügt,
die blinkt.
Die LED blinkt auch, nur es wird gar kein USB Gerät erkannt.
Was mach ich noch falsch? Ich würde erwarten dass es nach dem ich es per
CubeMX generiert habe, es out-of-the-box läuft, so ließt man es ja im
mehrfach.
Ich bin die Clock Settings noch Mal durch und schaue dass alle
Funktionen in der MX_USB_DEVICE_Init() den Rückgabewert USBD_OK haben.
Immer noch kein Erfolg...
Hallo noch mal
ich habe kein F4 zur Zeit hier, für das Nucleo-F746 habe ich das
minimalste USB CDC erstellt.
in CubeMX:
- ext. 8MHz bypass
- Takt auf 216MHz, USB Takt auf 48MHz
- USB Device only
- USB Device CDC
in SW4STM32:
- Projekt importiert
- in die main.c Schleife einen Blinker eingebaut