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?
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
hatte ich schon ausprobiert, hat nix gebracht. diese makros werden aber auch in der dma_transfer_dma funktion aufgerufen, also...
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)
>das nutzt das alte std_periph library (mit welchem der ganze kram auch
Aber als Vergleichsobjekt müsste es doch taugen?
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^^
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.