Forum: Mikrocontroller und Digitale Elektronik STM32F4 HAL SPI über DMA


von Leon L. (leonelf)


Angehängte Dateien:

Lesenswert?

Ich schreibe gerade eine Firmware für meinen LED Cube (16³) und versuche 
mit DMA periodisch 16 HALFWORDs (ein 16² Layer) ins SPI modul zu 
schieben. Ich bin relativ neu mit diesem HAL-lib^^

Der timer funktioniert, breakpoints werden dort aufgerufen, aber spi 
gibt keine Daten aus. Wenn ich SPI manuell benutze (SPI_Transmit...) 
kommt was raus, also muss es irgendwie an meiner Einrichtung vom DMA 
Modul liegen (oder so?).

Code ist im Anhang^^
Kann es etwas mit der Reihenfolge zu tun haben, in der die init 
Funktionen aufgerufen werden?

von derKer (Gast)


Lesenswert?

Hallo

Kenne mich mit der HAL nicht aus, aber müsstest Du die peripherien nich 
noch aktivieren, so in der Grössenordnung:

SPI_Cmd(SPI1, ENABLE);
DMA_Cmd(DMA1, ENABLE);
DMA_Cmd(DMA2, ENABLE);

Gruss
derKer

von Leon L. (leonelf)


Lesenswert?

hatte ich schon ausprobiert, hat nix gebracht. diese makros werden aber 
auch in der dma_transfer_dma funktion aufgerufen, also...

von SCII-Zeichnungen[/co (Gast)


Lesenswert?

Schau' 'mal da, ob's Uwe besser kann:

http://mikrocontroller.bplaced.net/wordpress/?page_id=4593

von Leon L. (leonelf)


Lesenswert?

das nutzt das alte std_periph library (mit welchem der ganze kram auch 
bei mir funktioniert, aber ich will zum HAL übergehen, damit ich bei 
neueren chip generationen nicht hängen bleibe)

von SCII-Zeichnungen[/co (Gast)


Lesenswert?

>das nutzt das alte std_periph library (mit welchem der ganze kram auch

Aber als Vergleichsobjekt müsste es doch taugen?

von Leon L. (leonelf)


Lesenswert?

ich habe das was ich hier will ja auch schon mit std_periph am laufen 
(rgb cube^^), aber will den neuen cube mit HAL programmieren, um mal ein 
"intro" zu HAL zu haben^^

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Hi!
Habe mein Projekt auch mal auf HAL geportet. Vor ein paar Wochen bin ich 
wieder zurück zur SPL gekommen, HAL ist für mein Projekt 
kontraproduktiv, weil es zu viele Dinge selber übernimmt. Beispielsweise 
die Interrupt Routinen sind m. E. nach ein Horror. Was gut ist an der 
HAL, sind auf jeden Fall die Makros und viele standard Funktionen. Die 
kann man sich aber notfalls auch in eine kleine Helper-Klasse einbinden 
und nutzen

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.